আমি কীভাবে আমার ওয়েবঅ্যাপে সময় অঞ্চল পরিচালনা করতে পারি?


104

আমি নিম্নলিখিত ব্যবহারকারীর গল্পটি আরও ভালভাবে বুঝতে চাইছি:

জন সিডনিতে কাজ করেন। সকাল 9 টা বাজে, তিনি জুরিখের একটি সার্ভারে চলমান একটি ওয়েব অ্যাপে একটি ইভেন্ট লগ করেন। পরের দিন, তিনি একটি জরুরী বৈঠকের জন্য নিউইয়র্ক ভ্রমণ করেন যেখানে এই ইভেন্টটি নিয়ে আলোচনা করা উচিত। বৈঠকের সময়, তিনি তারিখ এবং সময় অনুসারে ইভেন্টটির সন্ধান করেন।

আমি এটি দেখতে পাওয়ায় এখানে কমপক্ষে দুটি সমস্যা রয়েছে:

  1. আমি কীভাবে ডাটাবেসে টাইম স্ট্যাম্পগুলি সঞ্চয় করব
  2. আমি কীভাবে তাদের ইউআইতে উপস্থাপন করব

জন যখন ইভেন্টটি অনুসন্ধান করবেন, তখন তিনি জানতে পারবেন যে এটি 9:00 ঘটেছে তবে ওয়েব ব্রাউজারে তার কী প্রবেশ করা উচিত? তিনি যখন "9:00" টাইমস্ট্যাম্প হিসাবে প্রবেশ করবেন তখন তিনি কিছুই পাবেন না কারণ এটি জুরিখ বা নিউ ইয়র্কের সময় হতে পারে (যেহেতু ইভেন্টটি পাওয়া যায় নি, তাই অ্যাপটি সিডনিতে ঘটেছিল তা জানার কোনও উপায় নেই, সুতরাং এটি স্বয়ংক্রিয়ভাবে সঠিক সময় অঞ্চলটি নির্বাচন করতে পারে না)।

সময় অঞ্চল অন্তর্ভুক্ত থাকতে পারে এমন টাইমস্ট্যাম্পের জন্য ব্যবহারকারীকে জিজ্ঞাসা করার একটি ভাল উপায় কী?

দ্বিতীয় সংখ্যাটি কীভাবে ফলাফলগুলি প্রদর্শন করবেন। যদি বিশ্বজুড়ে দলগুলির ইভেন্টটি নিয়ে আলোচনা করা প্রয়োজন (এবং সম্পর্কিত ইভেন্টগুলি সন্ধান করুন, এমন ক্র্যাকার অ্যাটাকের কথা চিন্তা করুন যা সারা পৃথিবীতে একসাথে বেশ কয়েকটি সাইটকে লক্ষ্য করে তোলে)।

টাইমস্ট্যাম্পগুলি প্রদর্শন করার জন্য একটি ভাল উদাহরণ কী যা আলাদা টাইম জোনে তৈরি করা যেতে পারে?

দ্রষ্টব্য: দয়া করে প্রয়োজনীয়তার প্রয়োগে মনোনিবেশ করুন। আমি নিজেই ডেটাবেস ম্যাপিং বের করতে পারি। বর্তমানে, আমি কাজের প্রবাহ সম্পর্কে নিশ্চিত নই। এটি অ-প্রবেশমূলক / স্বজ্ঞাত উপায়ে প্রয়োজনীয় তথ্য জিজ্ঞাসা / উপস্থাপন করা উচিত। যদি আপনি পারেন তবে একটি বিদ্যমান ওয়েব অ্যাপ্লিকেশনটিতে একটি লিঙ্ক দিন যা ইতিমধ্যে এটি সমাধান করে।


5
স্ট্যাক ওভারফ্লো সবকিছুকে ইউটিসিতে রেখে সমাধান করে। সবসময় সুবিধাজনক নয়, তবে এটি অবশ্যই স্পষ্ট নয়, কার্যকর করা কঠিন নয় এবং কাজ করে।
Ry-

2
ইউটিসি প্রলোভনযুক্ত তবে ওটিওএইচ, এসও-র কখনও কখনও বেশ কয়েকটি টাইম জোনের ইভেন্টগুলিকে সিঙ্ক্রোনাইজ করার দরকার নেই।
অ্যারন দিগুলা

3
যদি জড়িত দেশগুলির মধ্যে কোনও একটি ইভেন্টটি নির্ধারিত হওয়ার পরে স্থানীয় সময় পরিবর্তিত আইন প্রয়োগ করে তবে ঘটনাটি ঘটে যাওয়ার আগে? সিস্টেমটি কীভাবে এটি পরিচালনা করবে? en.wikedia.org/wiki/…
জুলিয়াস মুসাউ

1
এই ধরণের ক্লাসিক টাইমজোন প্রশ্নটি কয়েক দশক ধরে ইন্টারনেট জুড়ে মারা গেছে এবং মুদ্রণে, আমি এই প্রশ্নের মতো প্রাণবন্ত ইনপুট এবং উদ্যানগুলি দেখে অবাক!
বেনসোয়েন

2
আমার আমি জটিলতার অতিরিক্ত বিষয় যুক্ত করে সুস্পষ্টভাবে নির্দেশ করে, যথা পশ্চিমা বিশ্বের বেশিরভাগ সময় বছরে দু'বার সময় অঞ্চল পরিবর্তন করে ("দিবালোক সঞ্চয় সময়"), এবং যে যখন ঘটে থাকে তার নিয়মগুলি বিশ্বব্যাপী একরকম বা অগত্যা তুচ্ছ নয়, অ্যালগোরিদম কথা বলছেন?
13 ই

উত্তর:


98

টাইমস্ট্যাম্পগুলি সংরক্ষণ করার বিষয়টি সহজ: এগুলিকে ইউটিসি-তে সংরক্ষণ করুন।

সেগুলি প্রদর্শনের জন্য, ডিভাইসের টাইমজোন সেটিংটি গ্রহণ করা এবং এটি বর্তমান টাইমজোন হিসাবে ব্যবহার করা বোধগম্য হবে। এটি বলেছিল, "টাইম ইনপুট" বাক্সের পাশে একটি টাইমজোন ড্রপডাউন হওয়া উচিত, যা ডিভাইসের বর্তমান টাইমজোনকে ডিফল্ট করে, তাই ব্যবহারকারী প্রয়োজনে এটি পরিবর্তন করতে পারে।

আপনার ব্যবহারকারীদের বেশিরভাগই সম্ভবত সময় অঞ্চলগুলিকে বেশি পরিবর্তন করতে পারবেন না। বেশিরভাগ ক্ষেত্রে, আপনি যে পরিস্থিতিটি উল্লেখ করেছেন তা অস্বাভাবিক। উপযুক্ত ডিফল্ট সহ ড্রপডাউন বাস্তবায়নের মাধ্যমে, যারা ঘুরে বেড়ান তাদের পক্ষে আপনার জিনিসগুলি যথেষ্ট সহজ করে তুলতে সক্ষম হওয়া উচিত (কারণ তারা সাধারণত ভ্রমণ-ভ্রমণকারীদের চেয়ে সময় অঞ্চলগুলির আরও ভাল বোঝার অধিকারী হন)।

প্রকৃতপক্ষে, আপনার অ্যাপ্লিকেশনটি প্রথম চালিত হওয়ার সময় ডিভাইসটি যে টাইমজোনটি সেট করা হয়েছিল সেটি সংরক্ষণ করা আরও ভাল ছিল এবং তারপরে এটি কখনও পরিবর্তন হয় কিনা তা দেখুন। যদি এটির পরিবর্তন হয় তবে ব্যবহারকারী সম্ভবত একজন ভ্রমণকারী এবং সম্ভবত সময় অঞ্চল নিচে আসার ফলে উপকৃত হবেন। অন্যথায়, কেবল ড্রপডাউন এবং ডিভাইস টাইমজোনকে ডিফল্ট দেখাবেন না (কারণ ব্যবহারকারী তাদের সম্পর্কে জানার দরকার নেই)। উভয় ক্ষেত্রেই, অ্যাপ্লিকেশনটিতে একটি সেটিংস করুন যা ব্যবহারকারীকে টাইমজোন ড্রপডাউনটি ম্যানুয়ালি প্রদর্শন / আড়াল করতে দেয়।


উপরোক্ত সংক্ষিপ্তসার:

  • প্রথমবারে, ডিভাইসটি কী টাইমজোন সেট করা আছে তা সংরক্ষণ করুন।
  • ডিফল্ট সময় অঞ্চল হিসাবে সেই সময় অঞ্চলটি ব্যবহার করুন। সর্বদা সেই টাইমজোনটি ধরে রাখুন।
  • ডিভাইসটির সময় অঞ্চলগুলি পরিবর্তন করা উচিত, ইভেন্টটি কোন টাইমজোন রয়েছে তা চয়ন করতে একটি ড্রপডাউন যুক্ত করুন, ডিভাইসের নিজস্ব সময় অঞ্চলকে ডিফল্ট করে।
  • এই টাইমজোনটি ড্রপডাউনটি ম্যানুয়ালি দেখানোর / আড়াল করার জন্য একটি বিকল্প যুক্ত করুন।
  • সর্বদা ইউটিসিতে টাইমস্ট্যাম্প সংরক্ষণ করুন।

"টাইমজোন" দ্বারা আমরা কী বোঝাতে চাইছি এটি অস্পষ্টভাবে ব্যবহৃত হয়েছে। এটি একটি রেফারেন্সের মতো দেখায়: en.wikedia.org/wiki/Tz_datedia আমি "টাইমজোন" বলতে যা বলতে পারি তা হল "অঞ্চল / অবস্থান", যেমন "আমেরিকা / নিউ_ইয়র্ক"। এটি ভৌগলিক বলে মনে হচ্ছে যা দুর্দান্ত কারণ উদাহরণস্বরূপ আমেরিকা / লস_এঞ্জেলস অর্থ পৃথিবী দিবালোক সঞ্চয় সময় সঞ্চালিত হচ্ছে কিনা তার উপর নির্ভর করে দুটি পিএসটি এবং পিডিটি। এবং যদি এটি হয় তবে প্রশ্নটি হল আমরা জোনগুলির জন্য ইউটিসির অফসেটে দ্বি-বার্ষিক পরিবর্তনগুলির জন্য কীভাবে অ্যাকাউন্ট করব? এছাড়াও ভৌগোলিকভাবে তারা "অঞ্চল" না হওয়ায় আমরা কীভাবে এইসব অপহরণগুলি বলি?
আইজেমস

এটি একটি দুর্দান্ত উত্তর। টাইমজোন তথ্য কীভাবে সংরক্ষণ করবেন সে সম্পর্কে কি সেরা অনুশীলন রয়েছে? উদাহরণস্বরূপ - কোনটি ভাল হবে - 'পিএসটি' বা 'আমেরিকা / প্যাসিফিক'? আমি কীভাবে সহজেই ইউটিসি-তে একটি টাইমস্ট্যাম্পকে বন্দী ব্যবহারকারীর টাইম জোনে রূপান্তর করতে সক্ষম হব? এ সম্পর্কে যে কোনও সেরা অনুশীলন প্রশংসা করা হবে।
পাঠেবাগ

27

আমাদের অ্যাপ্লিকেশনগুলিতে, সাধারণত ফোরামের সাইটগুলিতে প্রায়শই দেখা যায় এবং আমরা সর্বদা সময় অঞ্চলের সাথে সময় প্রদর্শন করিবার সময় আমরা সাধারণত ব্যবহারকারীদের সময় অঞ্চলটি সংরক্ষণ করি

তারিখগুলি সংরক্ষণ করার জন্য, ইউটিসি হ'ল উপায়। ইউটিসিতে রূপান্তর করুন এবং এটি ডেটাবেসে আটকে দিন। পুনরুদ্ধার করার সময়, কেবলমাত্র ব্যবহারকারীর জন্য সময় অঞ্চল সেটকে রূপান্তর করুন।

আমাকে অনুরূপ ব্যবহারের কেসটি সমাধান করতে হয়েছিল, যেখানে "হ্যাপি নিউ ইয়ার" এর মতো কাস্টমাইজড বিজ্ঞপ্তিগুলি ওয়েব অ্যাপ্লিকেশনটির সমস্ত ব্যবহারকারীর কাছে পাঠানো যেতে পারে। যেহেতু ব্যবহারকারীরা বিশ্বব্যাপী ছড়িয়ে পড়েছে তাই সময় অঞ্চল অনুযায়ী আমাদের বিজ্ঞপ্তিটি প্রদর্শন করা দরকার। ইউটিসিতে টাইমস্ট্যাম্প সংরক্ষণ করে হিক্কি ছাড়াই দুর্দান্তভাবে আমাদের উদ্দেশ্যে পরিবেশন করেছে।

আপনার ব্যবহারের ক্ষেত্রে, আপনি যদি কোথাও ব্যবহারকারীর টাইমজোনটি সংরক্ষণ না করেন তবে আপনি কখনই জিপাসের মতো কোনও অবস্থান সনাক্তকরণ শুরু না করা অবধি ব্যবহারকারীর ইনপুট না জিজ্ঞাসা করে সঠিকভাবে আপনার অনুসন্ধানের ফলাফল ফিরিয়ে দিতে সক্ষম হবেন না, তবে তা ' নির্ভরযোগ্য। সুতরাং ব্যবহারকারীকে তিনি ওয়েবসাইটে কী লিখছেন তা জানেন কিনা তা নিশ্চিত করার জন্য আপনাকে প্রতিবার সময় অঞ্চল জিজ্ঞাসা করতে হবে।

আপনার কাছে টাইমজোন সম্পর্কিত তথ্য থাকলে, পুরো ওয়েব অ্যাপ্লিকেশনটি টাইমজোন সেটিংসের সাথে চালানো উচিত। সুতরাং যখন ব্যবহারকারী 9:00 টি অনুসন্ধান করবে, তখন তিনি সিডনি টাইমজোনটির সাথে সন্ধান করবেন। অন্যদিকে, যদি তিনি নিউইয়র্কের বসে বসে কোনও ইভেন্ট তৈরি করেন তবে তিনি সিডনি টাইমজোন দিয়ে একটি ইভেন্ট তৈরি করবেন। আমরা তারিখগুলি প্রদর্শনের সময় সর্বদা টাইমজোন প্রদর্শন করে এই জাতীয় কেসগুলি সমাধান করি।

আশা করি এটা সাহায্য করবে! :)


আমি মনে করি সময় অনুসন্ধান করার সময় এবং ইভেন্টগুলি তৈরি করার সময় টাইমজোনগুলির জন্য একটি ড্রপডাউন যোগ করার সাথে, এই পথে যাওয়ার উপায়। (যখন আমাকে নিউইয়র্কের সহকর্মীদের দ্বারা নির্মিত ইভেন্টটি অনুসন্ধান করতে হবে, আমি নিজেই গণিতটি করতে চাই না)
রাসমাস ডাব্লুএল

এটি একটি দুর্দান্ত উত্তর। টাইমজোন তথ্য কীভাবে সংরক্ষণ করবেন সে সম্পর্কে কি সেরা অনুশীলন রয়েছে? উদাহরণস্বরূপ - কোনটি ভাল হবে - 'পিএসটি' বা 'আমেরিকা / প্যাসিফিক'? আমি কীভাবে সহজেই ইউটিসি-তে একটি টাইমস্ট্যাম্পকে বন্দী ব্যবহারকারীর টাইম জোনে রূপান্তর করতে সক্ষম হব? এ সম্পর্কে যে কোনও সেরা অনুশীলন প্রশংসা করা হবে।
পাঠেবাগ

11
  1. ইউটিসি. সহজবোধ্য রাখো.

  2. ব্যবহারকারীর সাথে সর্বাধিক প্রাসঙ্গিক টাইমজোনটি ব্যবহার করুন।

    আপনি কি জানেন ব্যবহারকারী হতে যাচ্ছে বা ইভেন্টের জন্য সিডনি ভ্রমণ করা থাকে, তাহলে তারা হবে চিন্তা যে সময় অঞ্চল যখন ইভেন্টে পরিবহন ব্যবস্থা। তারা বর্তমানে নিউইয়র্কে রয়েছেন এ বিষয়টি মূলত অপ্রাসঙ্গিক। এবং অবশ্যই, যদি আপনার অ্যাপ্লিকেশনটি বিভিন্ন টাইমজোনগুলিতে তারিখগুলি দেখায়, তবে সর্বদা তারিখের পাশের সময় অঞ্চলটি প্রদর্শন করা উচিত, যেমনঃ 09:00 EST

    যদি এটি আপনার ইন্টারফেসটিকে খুব বেশি বিশৃঙ্খলা না করে তবে আপনি ইভেন্টের সময় অঞ্চল এবং স্থানীয় সময় অঞ্চলগুলিতে তারিখগুলি প্রদর্শন করতে পারেন, যেমন 2012-06-13 09:00 EST (2012-06-12 19:00 EDT)

    আমি যুক্তি দিয়ে বলব যে অনুসন্ধান একটি অনুরূপ সমস্যা, একটি সতর্কতার সাথে: আমরা মিথ্যা ধনাত্মকতাগুলি সহ্য করতে পারি (যার ফলস্বরূপ আমরা প্রত্যাশা করছিলাম না), তবে আমরা মিথ্যা নেতিবাচক অবস্থান করতে পারি না (ফলস্বরূপ আমরা প্রত্যাশা করছিলাম না)।

    আবার আমি ব্যবহারকারীর সর্বাধিক প্রাসঙ্গিক টাইমজোন (যেমন ইভেন্টের টাইমজোন) সন্ধানের দিকে মনোনিবেশ করব এবং অনুসন্ধান ফলাফলগুলিতে এই ফলাফলগুলিকে অগ্রাধিকার দেব, তবে ব্যবহারকারীর সাথে প্রাসঙ্গিক অন্যান্য টাইমজোনগুলিতে মেলে এমন ইভেন্টগুলিও আপনি ফিরিয়ে দিতে পারবেন eg স্থানীয় সময়). আপনি যদি এটি করেন তবে আপনার ম্যাচের টাইমজোনটিতে ইভেন্টের তারিখটি প্রদর্শন করা উচিত, বিশেষত যদি আপনি ম্যাচের পাঠ্যটি হাইলাইট করেন।


7

বাস্তবায়ন সম্ভাব্যতা সম্পর্কে খুব বেশি মাথা ঘামাই না করে আমি এখানে সর্বোত্তম ব্যবহারের জন্য পরামর্শ দিচ্ছি।
1. ডিবিতে ইভেন্টগুলি সংরক্ষণের প্রথম ইস্যুর জন্য, প্রত্যেকে এটি ইউটিসি-তে সংরক্ষণ করতে সম্মত হবে

২. সেরা ব্যবহারকারীর অভিজ্ঞতা দেওয়ার জন্য, ব্যবহারকারীর টাইমজোনটির ইতিহাস সংরক্ষণ করুন। আপনি যদি সময় অঞ্চল পরিবর্তনের টাইমস্ট্যাম্প সংরক্ষণ করতে পারেন তবে আরও ভাল। এটি আমাদের প্রত্যেকবার স্পষ্টভাবে টাইমজোন নির্দিষ্ট করে না দিয়ে ব্যবহারকারীর প্রশ্নের সমাধানের জন্য স্বাধীনতা দিতে সক্ষম করবে।

সুতরাং এই বৈশিষ্ট্যগুলির সাথে, আসুন দেখুন কীভাবে জন দ্বারা "9.00" অনুসন্ধানের অনুসন্ধানটি পরিচালনা করা হবে:
উপরে উল্লিখিত বৈশিষ্ট্যগুলির সাথে, এখন আমি জানি যে জন আজ অবধি 2 টি সময় অঞ্চলে ছিল (বা উল্লিখিত সময়ের জন্য সময় অঞ্চলগুলির তালিকা পান)। সুতরাং আমি সিডনি টাইম জোন থেকে ইউটিসি-তে 9.00 প্রচ্ছদ করব, একটি প্রশ্নের সন্ধান করব। এছাড়াও নিউইয়র্ক টাইম অঞ্চল থেকে 9.00 কে ইউটিসিতে রূপান্তর করুন, একটি প্রশ্নের সন্ধান করুন। ফলস্বরূপ আমি সিডনিতে 9.00 এবং নিউ ইয়র্কে 9.00 এ যা করণীয় তা প্রদর্শন করে জনকে 2 সারি দেখাব। এই ক্ষেত্রে নিউ ইয়র্ক রেখাটি ফাঁকা থাকবে, তবে আমি মনে করি এখনও ব্যবহারকারীর কাছে দেখানো উচিত, কেবলমাত্র তাকে জানাতেই আমরা এই সময় অঞ্চলটি অনুসন্ধান করেছি।

৩. সময় টাইমস্ট্যামের জন্য ব্যবহারকারীকে জিজ্ঞাসা করার ভাল উপায় কী যা সময় অঞ্চল অন্তর্ভুক্ত করতে পারে?

যদি তার টাইমজোনটি সম্প্রতি পরিবর্তিত হয়, যখনই সে প্রয়োগে লগ ইন করে, একটি বিজ্ঞপ্তি দেওয়া উচিত, আপনার ডিফল্ট টাইমজোনটি দেশীয় টাইমজোনে পরিবর্তিত হবে।
ইভেন্টটি তৈরি করার সময়, যাক ব্যবহারকারীরা ড্রপ ডাউন থেকে টাইমজোনটি নির্বাচন করুন world বিশ্বের সমস্ত সময় অঞ্চলগুলির বিকল্প দিয়ে ব্যবহারকারীকে বোঝাবেন না drop ড্রপডাউনের প্রথম বিকল্পটি ব্যবহারকারীর ডিভাইসের বর্তমান সময় অঞ্চল হওয়া উচিত। তার সময় অঞ্চলগুলির ইতিহাস থেকে সময় অঞ্চলগুলির পরে, ইউটিসি এবং তারপরে অবশিষ্ট সময় অঞ্চলগুলি যা তিনি আজ অবধি ব্যবহার করেন নি।

৪. কীভাবে ফলাফলগুলি প্রদর্শন করতে হবে, যদি বিশ্বজুড়ে সমস্ত দলকে ইভেন্টটি নিয়ে আলোচনা করা দরকার:

আমি এই ব্যবহারের কেস 2 বা 2 এর বেশি দলের সংখ্যার মধ্যে ভাগ করতে চাই
just মাত্র 2 টি দলের জন্য, আমি পছন্দ করব যে প্রতিটি দল তার স্থানীয় সময় অঞ্চল এবং অন্যান্য দলের সময় অঞ্চলে টাইমস্ট্যাম্প দেখে। (আমি ব্যক্তিগতভাবে কোনও সভার সময় নির্ধারণের সময় তার সুবিধার জন্য অন্য প্রান্তে ব্যক্তির টাইম জোনে কথা বলতে পছন্দ করি)। 2 টিরও বেশি দলের জন্য আরও বেশি সাধারণ টাইমজোন অর্থাৎ ইউটিসি বিবেচনা করা ভাল better সুতরাং এই ক্ষেত্রে, প্রতিটি ব্যবহারকারীর 2 টি টাইম জোনে, ইউটিসি এবং তার ডিফল্ট টাইম জোনে টাইমস্ট্যাম্প দেখতে হবে।

এই পরামর্শটি এই উদ্দেশ্যটির সাথে দেওয়া হয়েছে যে ব্যবহারকারীর তার স্থানীয় সময়ে কোনও গণনা করার দরকার নেই তবে একই সাথে তার অন্যান্য ব্যবহারকারীদের সাথে তাদের পছন্দের সময় অঞ্চলে সাবলীলভাবে যোগাযোগ করতে সক্ষম হওয়া উচিত।


2
+1 এটি একটি খুব আকর্ষণীয় ধারণা কারণ আমি জানি যে ব্যবহারকারী সিডনিতে 9:00 টায় একটি ইভেন্টে প্রবেশ করেছিল, তাই যখন একই ব্যবহারকারী কোনও সময়ের জন্য অনুসন্ধান করে (স্পষ্ট সময় অঞ্চল ছাড়াই) তখন আমার ধারণা করা উচিত যে "আমি যেখানে ছিলাম সেই সময় "
অ্যারন ডিজুল্লা

4

ঠিক আছে আমি অন্যের চেয়ে আলাদা পন্থা পেয়েছি:

প্রথমত, আমি হাতে কিছু জিনিস ধরেছিলাম।

যে ইভেন্টটি তালিকার তালিকা দিচ্ছে তার কাছে স্মার্টফোন রয়েছে (এটি যদি ব্রাউজার হয় তবে আমার এই অনুমানগুলি করতে হবে না):

  1. জিপিএস

  2. এইচটিএমএল 5 ক্ষমতা।

  3. জাভাস্ক্রিপ্ট ক্ষমতা

আমি কীভাবে ডেটাবেসে টাইম স্ট্যাম্পগুলি সঞ্চয় করব?

সমাধান: স্পষ্টতই ইউটিসি , আমি নীচে প্রক্রিয়াটি আবৃত করেছি:

ধাপ 1 ব্যবহারের ভৌগলিক-অবস্থান ভৌগলিক-অবস্থান API ব্যবহার করে ব্যবহারকারীর

    window.onload = getMyLocation;

    function getMyLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(displayLocation);
        } else {
            alert("Oops, no geolocation support");
        }
    }

    function displayLocation(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var div = document.getElementById("location");
        div.innerHTML = "You are at Latitude: " + latitude + ", Longitude: " + longitude;
    }

পদক্ষেপ ২ ( ইয়াহু এপিআইয়ের মতো টাইমজোন এপিআইকে কিছু (ল্যাট, ল্যাট) যুক্তি হিসাবে ব্যবহারকারীদের সময় অঞ্চল পেতে অক্ষাংশকে টাইমজোন রূপান্তর করতে ফ্ল্যাগ আর ব্যবহার করুন ) হিসাবে যুক্ত করুন (লং, ল্যাট) দিন ।

=> ব্যবহারকারীদের টাইমজোনটি ব্যবহারকারী ইনপুট ছাড়াই নির্ধারিত হয় (আমি এটি ব্যবহার করছি কারণ আপনি সহজেই অনুমান করতে পারবেন না যে তিনি যে জায়গার বাস করেন তার টাইমজোনটি জানেন, আমি আমার টাইমজোনটি কয়েক মাস বা এই জায়গায় কিছু পরে জানতাম: পি, সুন্দর বোবা! )

প্রতিটি ইভেন্টের সারণীতে রয়েছে Timezone, Eventএবং CityName এরপরেও এর উপর ভিত্তি করে শ্রেণিবিন্যাস সহ অন্য একটি ডাটাবেস টেবিল তৈরি করতে পারে CityName। সুতরাং এখানে ব্যবহারকারীর দুটি কলাম থাকবে

|---------------------------------------|
|_____NewYork________|______Sydney______|
|                    |                  |
|Event 1             |  Event 2         |
|____________________|__________________| 

ইউআই এর জন্য

=> গুগল ক্যালেন্ডার এপিআই বা ক্যালেন্ডার এপিআই এর কিছু ব্যবহার করুন

সম্পর্কিত পড়া:

  1. জিওনস্ট্রেটের মতো ওয়েব পরিষেবা ব্যবহার না করেই অক্ষাংশ / দ্রাঘিমাংশ থেকে টাইমজোন নির্ধারণ করুন

  2. অক্ষাংশ দ্রাঘিমাংশ থেকে টাইমজোন সন্ধান

আমি জানি যে এই সমস্যাটি কীভাবে সমাধান করা যায় সে সম্পর্কে কিছু ধারণা দেখানো সম্পর্কে। টাইমজোনটি ডিভাইস এপিআই ব্যবহার করে নির্ধারিত হয়ে গেলে ব্যবহারকারীদের উপর এটি কতটা সঠিক ও হালকা-ওজনের হয় তা দেখুন

আশা করি এটা সাহায্য করবে!


4
ভূ-স্থান ছাড়াই কারও টাইমজোন পাওয়া খুব সহজ। new Date().getTimezoneOffset()এটি ইউটিসির পিছনে কয়েক মিনিটের মধ্যে দেয়।
রাই-

@ এমনিটেক, এটি সত্য তবে এটি যদি নিউইয়র্ক এবং দক্ষিণের কোথাও যেখানে একই টাইমজোন হয় সেখানে ঘটনাটি ঘটছে। আমি জিওলোকেশনটি ব্যবহার করছি যাতে আপনি সিটিটি (এমনকি সঠিক), অনশোটে টাইমজোনটি চিহ্নিত করতে এবং এটিতে আমার ডিবি টেবিলটি বেস করতে পারেন। আমি অ্যাপের কার্যকারিতা বাড়ানোর জন্য ডিভাইস এপিআই ব্যবহার করে ব্যবহারকারীর ইনপুট হ্রাস করতে চাই ।
উদয়

তাই? উভয় জায়গায় সময় একই হবে, তাই কোনও সমস্যা নেই। -1
Ry-

@ মিনিটেক, আমি অন্যান্য পদ্ধতির চেয়ে ডিভাইস এপিআই ব্যবহারের পরামর্শ দিচ্ছি কেন আপনি এই লিঙ্কটি দেখতে পারেন । webdirections.org/sotmw2011
উদয়

2
ঠিক আছে, তবে এখানে সমস্যাটি ব্যবহারকারীর শহর পাওয়ার বিষয়ে নয়। এটি কেবল টাইমজোন পাওয়ার বিষয়ে। একটি জিওলোকেশন এপিআই ব্যবহার করে যা প্রতিটি ব্রাউজার / কম্পিউটারে কাজ করে না, তারপরে কোনও ক্যালেন্ডার এপিআই এ পুনঃনির্দেশ করা, যখন কোনও কোডের এক লাইনে পাওয়া যায় তখন ব্যবহারকারীর টাইমজোনটি পাওয়া খারাপ উপায়
রাই-

2

সেই বিশেষ ক্ষেত্রে আমি স্থানীয় এবং ইউটিসি উভয়ই সময় সঞ্চয় করতাম । ইউটিসি কিছুটা বড় এবং সময়কে বর্তমান সময়ের সাথে সিঙ্ক এবং রূপান্তর করার জন্য ব্যবহৃত হয়। স্থানীয় অনুসন্ধান এবং অতিরিক্ত তথ্যের জন্য যেমন:

আপনার একটি সভা আছে:

12:00 Monday (UTC)
9:00 Monday (Sydney, creation local time)
11:00 Monday (Zurich, local time)

বা এই জাতীয় কিছু। অন্য উপায়টি হ'ল সৃষ্টি সময় অঞ্চল সংরক্ষণ করা এবং রানটাইম এ রূপান্তর করা (এটি বিশেষত ক্ষেত্রে ভাল তবে যদি ব্যবহারকারী মিটিংয়ের সময় পরিবর্তন করে)। যে কোনও উপায়ে মূল কারণ হ'ল আসল তৈরির সময় পুনরুদ্ধার করতে সক্ষম হবেন যাতে ব্যবহারকারী এটি উল্লেখ করতে পারে।


2
  1. আমি কীভাবে ডাটাবেসে টাইম স্ট্যাম্পগুলি সঞ্চয় করব

ইভেন্ট তৈরির সময়, আমি ইউটিসি সময় এবং স্থানীয় সময় অঞ্চল (ওরফে creation time zone) সঞ্চয় করতাম । আমি ইউটিসি সময়কে স্থানীয় সময়ে (ওরফে creation time) রূপান্তর করতে এবং ইউটিসি সময় এবং এর পাশাপাশি সঞ্চয় করতে যা ব্যবহার করেছি তা ব্যবহার করব creation time zone

দ্রষ্টব্য: আমি আসার সময় থেকে স্থানীয় সময় সঞ্চয় করতে পারি, তবে যখন ব্যবহারকারী কোনও ইভেন্টের জন্য অনুসন্ধান করেন, আমি আশা করি স্থানীয় সময় রূপান্তর উপস্থিত রয়েছে। আমি আরও আশা করি যে ক্লায়েন্টটি কোন টাইম জোনে রয়েছে তা সার্ভার সনাক্ত করতে পারে।

  1. আমি কীভাবে তাদের ইউআইতে উপস্থাপন করব

"9:00" জন্য একটি ব্যবহারকারী অনুসন্ধান, আমি ঘটনা যে, "9:00" অন্তর্ভুক্ত পারেন UTC- এ অনুসন্ধান করবে যখন বা creation time বা স্থানীয় সময়। ফলাফলগুলির জন্য, আমি ফলাফলগুলির একটি টেবিল প্রদর্শন করব creation time(এটি এমন টাইমস্ট্যাম্পগুলি প্রদর্শন করার উদ্দেশ্যে যা অন্য সময় অঞ্চলে তৈরি করা হতে পারে, যেমন আমরা ধরে নিয়েছি যে তিনি যেখানে ছিলেন সেখানে কোনও ইভেন্ট তৈরি করার সময় ব্যবহারকারী সন্ধান করছে)) , এবং নীচের সম্পর্কিত ফলাফলগুলির দ্বিতীয় সারণি প্রদর্শন করুন সম্ভবত শিরোনাম দিয়ে, "আপনি যা খুঁজছেন তা নয়? সম্পর্কিত ফলাফলগুলি দেখুন" (এর মধ্যে অবশিষ্ট ইউটিসি এবং স্থানীয় সময়ের ফলাফল অন্তর্ভুক্ত রয়েছে)।

সামগ্রিকভাবে, আমি ইউটিসির সময় অনুসারে, ইউটিসি সময়, স্থানীয় সময়, creation timeএবং এবং creation time zone(যে ইভেন্টটি এটি তৈরি করা হয়েছিল তার স্থানীয় সময় এবং সময় অঞ্চল) প্রদর্শন করব, যাতে আপনি দেখতে পারবেন কোন ইভেন্টটি প্রথমে আসে, দুটি ক্ষেত্রে আলাদা হলে দুটি ভিন্ন টাইম জোনে ইভেন্টগুলি 9:00 এর জন্য নির্ধারিত ছিল।


1
+1 স্থানীয় সময় মেলে এমন সমস্ত অঞ্চলগুলিতে সমস্ত ইভেন্টগুলি দেখানোর মত ধারণাটি আমি পছন্দ করি; আমি এসকিউএল (24x BETWEENশর্ত) থেকে কেবল অসন্তুষ্ট ।
অ্যারন দিগুল্লা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.