2009-07-28 13 views
5

मैं ऑपरेटिंग सिस्टम से जीएमटी समय ऑफसेट की तुलना जीएमटी समय ऑफसेट से जावास्क्रिप्ट की डेट.getTimezoneOffset() से ऑफसेट करने की कोशिश कर रहा हूं। समस्या यह है कि विंडोज़ ईएसटी पर आधारित ऑफसेट देता है जबकि जावास्क्रिप्ट ईडीटी के आधार पर ऑफ़सेट देता है। इन दोनों के बीच एक घंटे का अंतर है। क्या किसी को पता है कि कैसे जावास्क्रिप्ट को विंडोज़ जैसे मानक टाइम्स का उपयोग करना है? धन्यवाद।जावास्क्रिप्ट की तिथि .getTimezoneOffset()

+0

आप ओएस से ऑफ़सेट कैसे प्राप्त कर रहे हैं? – Rojo

उत्तर

4

किसी तारीख को GetTimezoneOffset को कॉल क्यों न करें जहां आपको पता है कि डेलाइट सेविंग टाइम लागू नहीं है?

javascript:alert(new Date('1/1/2009').getTimezoneOffset()) 

यह 300 (5 घंटे) देगा।

+0

मदद के लिए धन्यवाद! – SquidScareMe

+0

यह फ़ायरफ़ॉक्स में काम नहीं करता है। –

12

नोट, कि पहले पोस्ट किए गए उत्तर केवल सभी मामलों में से आधे में काम करते हैं, इस प्रकार औसत पर बिल्कुल काम नहीं करते हैं।

पहला जनवरी केवल उत्तरी गोलार्द्ध में डेलाइट सेविंग टाइम में नहीं होना जाता है। हालांकि यह दुनिया का केवल आधा है।

var jan = new Date(2009, 0, 1, 2, 0, 0), jul = new Date(2009, 6, 1, 2, 0, 0); 
var offset = (jan.getTime() % 24 * 60 * 60 * 1000) > 
      (jul.getTime() % 24 * 60 * 60 * 1000) 
      ?jan.getTimezoneOffset() : jul.getTimezoneOffset(); 
+2

किसी भी समूह को अलगाव नहीं करना ठीक है, लेकिन ध्यान दें कि उत्तरी "दुनिया का आधा" विश्व जनसंख्या का 9 0% है। – hyperslug

+1

@hyperslug - यदि SquidScareMe केवल उत्तरी गोलार्द्ध समाधान के बाद है, तो यह उसके लिए ठीक है। हालांकि, SO * * * सर्वोत्तम * समाधान प्रदान करना चाहिए, और स्टीफन का समाधान तकनीकी रूप से अधिक सही है (सही प्रकार का सही!)। – Andrew

+0

इस काम को करने के लिए, मुझे पहले वर्तमान माह मिलता है और फिर उसे वहां बदलें जहां आप 6 (जुलाई) देखते हैं। – MPaulo

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