2009-03-23 9 views
5

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

+0

आप कैसे जानते हैं कि ग्राहक का समय निर्धारित सटीक है? आप जीत नहीं सकते –

+0

मैंने इसे माना ... लेकिन मैं इसे जीत मानूंगा यदि मैं इसे अपने समय (सही या गलत) पर आधारित कर सकता हूं :)। – JPrescottSanders

उत्तर

8

मैं जावास्क्रिप्ट dateObject.getTimezoneOffset() का उपयोग करूंगा। यहां तक ​​कि अगर अपने समय सही ढंग से सेट नहीं है, उम्मीद है कि वे अपने समय क्षेत्र निर्धारित किया है:

http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp

आप गणना करने के लिए एक सर्वर के समय और ग्राहक के समय के बीच ऑफसेट इस मान का उपयोग कर सकते हैं। (जैसा कि जेसन ने नीचे एक टिप्पणी में मदद की है)

+0

आपका समाधान सही है। मुझे 6 महीने पहले हमारे वेब ऐप के लिए इस समस्या को हल करना पड़ा था और उसी निष्कर्ष पर आया था: क्लाइंट टाइम ज़ोन द्वारा संशोधित सर्वर समय का उपयोग करें। –

2

GetTimezoneOffset का उपयोग करने के अलावा, आपको उपयोगकर्ता को अपनी प्रोफ़ाइल में पसंदीदा टाइमज़ोन निर्दिष्ट करने की अनुमति देना चाहिए। उदाहरण के लिए, एक उपयोगकर्ता एक टाइमज़ोन में जा रहा है, फिर भी अपने घर के समय क्षेत्र में प्रदर्शित समय देखना पसंद कर सकता है।

इसके अलावा, यदि यह एक जावास्क्रिप्ट फ़ंक्शन को कॉल करने जितना आसान था, तो साइटों को कभी भी आपके टाइमज़ोन के लिए पूछना नहीं होगा।

0

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

आपको साइन-अप या संभवतः अपने "विकल्प" में यह हिस्सा बनाना होगा।

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