2008-10-28 28 views
6

मुझे हमारी वेबसाइट पर 'सही' समय प्रदर्शित करने के लिए कहा गया है, जिसे मैं स्पष्ट रूप से महसूस करता हूं कि 'सही' को इस तरह के तरीकों से व्याख्या किया जा सकता है।वेबसाइट पर सटीक स्थानीय समय प्रदर्शित करें?

हमारी वर्तमान विधि निश्चित रूप से एक गलत समय में परिणाम देती है क्योंकि यह एक सर्वर नियंत्रण प्रतिपादन जावास्क्रिप्ट का उपयोग करता है जो सर्वर से डेटाटाइम का उपयोग करते हुए ऑनलाइन चलाता है जो जावास्क्रिप्ट में एक घड़ी ऑब्जेक्ट बनाने के लिए पैरामीटर के रूप में होता है जो आखिरकार पृष्ठ पर प्रस्तुत करता है और फिर वृद्धि शुरू करता है घड़ी। सर्वर प्रोसेसिंग के बीच, नेटवर्क विलंबता और क्लाइंट-साइड प्रदर्शन (ऑनलोड चलने वाली कई अन्य चीजें हैं) घड़ी वास्तविक सर्वर समय से समाप्त होती है और क्लाइंट पीसी की तुलना में कौन जानता है।

तो 'सही' समय दिखाने के लिए मैं दिखा सकता था;

  • स्थानीय पीसी समय का उपयोग करें और जावास्क्रिप्ट घड़ी ऑब्जेक्ट पर नई तिथि() पास करें। पेशेवर: जितना संभव हो सके पीसी घड़ी के करीब होना चाहिए। विपक्ष: सुनिश्चित नहीं है कि टाइम घड़ी में पीसी घड़ी कितनी सटीक है।
  • वेब पेज पर घड़ी अपडेट करने के लिए एनटीपी सर्वर को टीसीपी अनुरोध के लिए वेब सेवा का उपयोग करें। पेशेवर: यदि स्थानीय पीसी भी एनटीपी को सिंक किया गया तो सटीक और सर्वोत्तम संभव मिलान होगा। विपक्ष: हमारे सर्वर से संबंधित सभी टाइमज़ोन समायोजन को संभालना होगा। यदि पीसी घड़ी खत्म हो गई है तो अभी भी मेल नहीं खाएगा।

क्या मैं अपनी खुद की वेब सेवा लागू करता हूं या कुछ ऐसा उपयोग करता हूं; Earth Tools या विश्व समय वेब सेवा (संपादित करें: लिंक हटा दिया - अब 404)

यहाँ Jon Galloway on Atomic Clock Web Service से एक ब्लॉग पोस्ट जो बहुत पुरानी है और अभी तक उच्च स्थान पर है जब मैं गूगल और वह एक निष्कर्ष तक नहीं पहुंचता है।

खुशी से मैं प्रबंधन के साथ तर्क जीत सकता हूं क्यों हमारे सर्वर घड़ी (जीएमटी) को समन्वयित करना समझ में नहीं आता है अगर आप उस टाइमज़ोन में नहीं हैं और हमें स्थानीय पीसी से मिलान करने की आवश्यकता क्यों है।

इस पर कोई कोण मुझे याद आ रहा है?

+0

घड़ी का उद्देश्य क्या है? क्या संकल्प आवश्यक है? सेकंड? मिनट? क्लाइंट साइड स्थानीय टाइमज़ोन के लिए प्रदर्शन है? –

+0

मैं व्यक्तिगत रूप से विशेष रूप से सर्वर पर यूटीसी पर सबकुछ चलाता हूं: यदि आप 13:47 यूटीसी के रूप में समय पोस्ट करते हैं, तो कोई भ्रम नहीं होता है। उस मामले के लिए, सब कुछ के लिए पीटी का उपयोग करने के ईबे की प्रणाली के साथ नहीं है। – warren

उत्तर

2

मुझे नीलामी वेब ऐप में ग्राहकों को सटीक समय दिखाने की ज़रूरत है। आप पृष्ठ के साथ वर्तमान सर्वर समय भेज सकते हैं और शेष पृष्ठ को लोड करने के इंतजार किए बिना जावास्क्रिप्ट को तुरंत प्रारंभ कर सकते हैं। तो, आप केवल नेटवर्क विलंबता से निपट रहे हैं जो सबसे बुरे मामले में कुछ सेकंड से अधिक होने की संभावना नहीं है।

उसके बाद, आप सटीक समय के करीब बहुत प्यारे हैं। जब तक आपका जावास्क्रिप्ट टाइमर कोड ठीक से लिखा गया हो, तब तक आप अगले पृष्ठ लोड से पहले सिंक से बाहर नहीं जा रहे हैं। लेकिन मैंने बहुत खराब जेएस घड़ी कोड देखा है। (संकेत: दिनांक() अच्छा, setTimeout() खराब।)

यदि आपके पास एक ऐसा एप्लिकेशन है जो उपयोगकर्ता लंबे समय तक बैठे जा रहे हैं, तो पृष्ठ या अजाक्स को पुनः लोड करके बस अपना समय सिंक रीफ्रेश करें।

मुझे समय क्षेत्र के बारे में चिंता नहीं होगी, बस यूटीसी समय का उपयोग करें ताकि इस बात के बारे में कोई भ्रम न हो कि चीजें क्या होंगी।

+0

"नेटवर्क विलंबता जो सबसे खराब स्थिति में कुछ सेकंड से अधिक होने की संभावना नहीं है" - आपके एक्शन वेब ऐप में कुछ सेकंड वास्तव में स्वीकार्य थे? – bzlm

+1

यह आदर्श नहीं है, लेकिन किसी भी नेटवर्क एप्लिकेशन को विलंबता से निपटना होगा। नीलामी के लिए महत्वपूर्ण क्या था कि हम सर्वर की घड़ी के अनुसार समापन समय के बाद प्राप्त दौड़ की स्थिति या पदों को रोकने के बारे में सावधान थे। – Sal

0

आप वेबसाइट आगंतुक के भौतिक स्थान और आपके डेटाबेस में (जीएमटी - एक्सएक्स: एक्सएक्स) को संग्रहीत करने के लिए geo targeting का उपयोग कर सकते हैं और फिर अनुरोध के स्थान के आधार पर समय की गणना कर सकते हैं। यह किसी तीसरे पक्ष की वेब सेवा के लिए लंबी यात्रा को बचाने जा रहा है।

+0

ऑस्कर एक गैर-स्पष्ट तरीके से एक महत्वपूर्ण बिंदु बनाता है: कुछ समय क्षेत्रों के लिए गैर-पूर्णांक घंटे ऑफसेट हैं। मुझे लगता है कि वे वास्तव में विस्तृत चुटकुले वाले कुछ लोगों को छोड़कर, 30 मिनट की सभी वृद्धि कर रहे हैं। हालांकि जांचें। – rmeador

1

सबसे पहले, सुनिश्चित करें कि आपके क्लाइंट को पता है कि विंडोज, लिनक्स और ओएसएक्स में सभी अंतर्निहित घड़ियों हैं जो उपयोगकर्ताओं के लिए लगभग हमेशा दिखाई देती हैं (या बहुत आसानी से दिखाई देती हैं)। साथ ही, सुनिश्चित करें कि आपका ग्राहक भौतिक घड़ियों से अवगत है जो अक्सर किसी भी कियोस्क के पास स्थित होते हैं जो ऑपरेटिंग सिस्टम से निर्मित घड़ी को छिपाने के लिए सेट हो सकता है।

यदि आप जानते हैं, और आपका ग्राहक अभी भी आपकी वेबसाइट पर घड़ी चाहता है, तो अपने ग्राहक को "सही" समय परिभाषित करें, फिर समाधान को कार्यान्वित करें जो उनकी परिभाषा से मेल खाता है (आपके दोनों समाधान प्रतीत होते हैं जैसे वे ख्याल रखेंगे दो सबसे संभावित परिभाषाएं)।

0

एक और तरीका जिसे आप इसे कार्यान्वित कर सकते हैं IP Geolocation का उपयोग कर रहा है। ऐसी सेवाएं हैं जो आपको बता सकती हैं कि आपका उपयोगकर्ता कहां से आईपी (आमतौर पर उनके टाइमज़ोन समेत) से कनेक्ट हो रहा है और उस जानकारी को आपके सर्वर की रीयलटाइम घड़ी के साथ जोड़कर आप उपयोगकर्ता को स्थानीय समय दिखा सकते हैं।

यह बिल्कुल सही नहीं है, विशेष रूप से कॉर्पोरेट उपयोगकर्ताओं के साथ जो शायद कहीं से कनेक्ट नहीं हो रहे हैं (मैं अर्जेंटीना में रहता हूं, लेकिन मेरा काम इंटरनेट कनेक्शन मेरे नियोक्ता है जो एक अमेरिकी कंपनी है, इसलिए हर वेबसाइट मुझे लगता है कि मैं मैं अमेरिका में स्थित हूं)

0

यूटीसी में समय संभालें।

  • उपयोगकर्ताओं तुम क्या क्षेत्र वे का उपयोग करना चाहते बता लो।
  • यदि आपके उपयोगकर्ताओं के पास लगातार प्रोफ़ाइल है, तो विकल्प को जारी रखें।
  • हमेशा यूटीसी और स्थानीय समय की ओर से प्रदर्शित करें और स्पष्ट रूप से लेबल करें।

आप उपयोगकर्ता निर्दिष्ट क्षेत्र घड़ियों की मनमानी संख्या भी प्रदर्शित कर सकते हैं। Vista यह करता है और मैं आश्चर्यचकित हूं कि कैसे आसान है।

संबंधित मुद्दे

 संबंधित मुद्दे