getTimezoneOffset()
जावास्क्रिप्ट में विधि, एक ब्राउज़र में 00:00 समय क्षेत्र से ऑफसेट मिनट की संख्या देता है। उदाहरण के लिए, डेलाइट सेविंग्स (DST) में अमेरिका / न्यू_यॉर्क टाइम ज़ोन 300 नंबर देता है। 300 मिनट शून्य पर 5 घंटे का अंतर है। 300 मिनट 60 मिनट से विभाजित 5 घंटे है। हर बार ज़ोन की तुलना शून्य समय क्षेत्र, +00: 00 / Etc / GMT / ग्रीनविच समय से की जाती है।
एमडीएन वेब डॉक्स
अगली चीज़ जो आपको पता होनी चाहिए, वह यह है कि ऑफ़सेट वास्तविक समय क्षेत्र के विपरीत संकेत है।
समय क्षेत्र के बारे में जानकारी इंटरनेट असाइनमेंट नंबर प्राधिकरण (iana) द्वारा बनाए रखी जाती है
ियाना समय क्षेत्र
टाइम जोन की एक अच्छी तरह से स्वरूपित तालिका joda.org द्वारा आपूर्ति की जाती है
जोडा-टाइम टाइम जोन
+00: 00 या Etc / GMT ग्रीनविच समय है
सभी समय क्षेत्र +00: 00 / "आदि / GMT" / ग्रीनविच समय से ऑफसेट हैं
डेलाइट सेविंग टाइम गर्मियों में "नियमित" समय की तुलना में हमेशा पहले का समय होता है। आप अपनी घड़ियों को पतन के मौसम में वापस सेट करें। ("फॉल बैक" नारे को याद रखें कि क्या करना है)
इसलिए, डेलाइट सेविंग्स (सर्दियों) में अमेरिका / न्यू_यॉर्क का समय नियमित समय से एक घंटा पहले है। इसलिए, उदाहरण के लिए, गर्मियों में न्यूयॉर्क शहर में दोपहर में आम तौर पर शाम 5 बजे, अब डेलाइट सेविंग्स में 4 बजे अमेरिका / न्यू_यॉर्क समय है। "अमेरिका / न्यू_यॉर्क" समय का नाम "लॉन्ग फॉर्मेट" टाइम ज़ोन नाम है। अमेरिका का पूर्वी तट आमतौर पर अपने समय क्षेत्र को पूर्वी मानक समय (ईएसटी) कहता है
यदि आप आज के समय क्षेत्र की तुलना किसी अन्य तिथि के समय क्षेत्र ऑफसेट से करना चाहते हैं, तो आपको यह जानना होगा कि समय क्षेत्र के समय का गणितीय संकेत (+/- "सकारात्मक / नकारात्मक") समय क्षेत्र के विपरीत है।
Joda.org पर टाइम ज़ोन तालिका देखें और "अमेरिका / न्यू_यॉर्क" के लिए समय क्षेत्र खोजें। यह मानक ऑफसेट के सामने एक नकारात्मक संकेत होगा।
पृथ्वी अपनी धुरी पर काउंटर-क्लॉकवाइज घूमती है। ग्रीनविच में सूर्योदय देखने वाला व्यक्ति सूर्योदय देखता है 5 घंटे पहले न्यूयॉर्क शहर में कोई व्यक्ति सूर्योदय देखेगा। और अमेरिका के वेस्ट कोस्ट पर कोई सूर्योदय देखेगा उसके बाद अमेरिका के पूर्वी तट पर कोई व्यक्ति सूर्योदय देखता है।
वहाँ एक कारण है कि आप यह सब जानने की जरूरत है। ताकि आप तार्किक रूप से यह निर्धारित कर पाएंगे कि कुछ जावास्क्रिप्ट कोड को सही ढंग से डीएसटी का दर्जा मिल रहा है या नहीं, साल के अलग-अलग समय में हर समय क्षेत्र का परीक्षण करने की आवश्यकता के बिना।
कल्पना कीजिए कि यह न्यूयॉर्क शहर में नवंबर है, और घड़ियों को एक घंटे पहले सेट किया गया है। न्यूयॉर्क शहर में गर्मियों में, ऑफसेट 240 मिनट या 4 घंटे है।
आप जुलाई में होने वाली एक तारीख बनाकर और फिर ऑफसेट प्राप्त करके इसका परीक्षण कर सकते हैं।
var July_Date = new Date(2017, 6, 1);
var july_Timezone_OffSet = July_Date.getTimezoneOffset();
console.log('july_Timezone_OffSet: ' + july_Timezone_OffSet)
ब्राउज़र के डेवलपर टूल कंसोल लॉग में क्या प्रिंट होगा?
उत्तर है: २४०
तो, अब आप जनवरी में एक तारीख बना सकते हैं और देख सकते हैं कि सर्दियों के मौसम के लिए एक समय क्षेत्र ऑफसेट के लिए आपका ब्राउज़र क्या देता है।
var Jan_Date = new Date(2017, 0, 1);//Month is zero indexed - Jan is zero
var jan_Timezone_OffSet = Jan_Date.getTimezoneOffset();
console.log('jan_Timezone_OffSet: ' + jan_Timezone_OffSet)
उत्तर है: 300
जाहिर है 300 240 से बड़ा है। तो, इसका क्या मतलब है? क्या आपको ऐसा कोड लिखना चाहिए जो सर्दियों के ऑफसेट के लिए परीक्षण गर्मियों के ऑफसेट से बड़ा हो? या गर्मियों में ऑफसेट सर्दियों की तुलना में कम है? यदि गर्मियों और सर्दियों के समय क्षेत्र के बीच अंतर है, तो आप मान सकते हैं कि इस समय क्षेत्र के लिए डीएसटी का उपयोग किया जा रहा है। लेकिन यह आपको नहीं बताता है कि क्या आज ब्राउज़र समय क्षेत्र के लिए डीएसटी का उपयोग कर रहा है। इसलिए, आपको आज के लिए समय क्षेत्र की भरपाई करने की आवश्यकता होगी।
var today = new Date();
var todaysTimeZone = today.getTimezoneOffset();
console.log('todaysTimeZone : ' + todaysTimeZone)
जवाब है: ? - वर्ष के समय पर निर्भर करता है
यदि आज का समय क्षेत्र ऑफसेट और ग्रीष्मकालीन समय क्षेत्र ऑफसेट समान है, और गर्मियों और सर्दियों का समय क्षेत्र भिन्न हैं, तो तार्किक कटौती द्वारा, आज DST में नहीं होना चाहिए।
क्या आप गर्मियों और सर्दियों के समय क्षेत्र की तुलना करने से चूक सकते हैं, (यह जानने के लिए कि क्या इस समय क्षेत्र के लिए डीएसटी का उपयोग किया जाता है) और बस आज के समय क्षेत्र की तुलना गर्मियों की ऑफसेट ऑफसेट से करें, और हमेशा सही उत्तर प्राप्त करें?
today's TZ Offset !== Summer TZ Offset
खैर, आज सर्दी या गर्मी में है? यदि आप जानते थे कि आप निम्नलिखित तर्क को लागू कर सकते हैं:
if ( it_is_winter && ( todays_TZ_Offset !== summer_TZ_Offset) {
var are_We_In_DST = true;
}
लेकिन समस्या यह है कि आप नहीं जानते कि आज की तारीख सर्दियों या गर्मियों में है। डीएसटी शुरू होने और रुकने पर हर बार जोन के अपने नियम हो सकते हैं। आपको दुनिया में हर समय क्षेत्र के लिए हर समय क्षेत्र के नियमों का ध्यान रखना होगा। तो, अगर एक बेहतर और आसान तरीका है तो आप इसे बेहतर और आसान तरीका भी कर सकते हैं।
हमारे पास जो कुछ बचा है, वह यह है कि आपको यह जानने की जरूरत है कि क्या यह समय क्षेत्र डीएसटी का उपयोग करता है, और फिर आज के समय क्षेत्र की तुलना ग्रीष्मकालीन क्षेत्र क्षेत्र ऑफसेट से करें। वह आपको हमेशा एक विश्वसनीय उत्तर देगा।
अंतिम तर्क है:
if ( DST_Is_Used_In_This_Time_Zone && ( todays_TZ_Offset !== summer_TZ_Offset) {
var are_We_In_DST = true;
}
यह निर्धारित करने के लिए फ़ंक्शन कि ब्राउज़र में समय क्षेत्र DST का उपयोग करता है:
function is_DST_Used_In_This_TimeZone() {
var Jan_Date, jan_Timezone_OffSet, July_Date, july_Timezone_OffSet
offsetsNotEqual, thisYear, today;
today = new Date();//Create a date object that is now
thisYear = today.getFullYear();//Get the year as a number
Jan_Date = new Date(thisYear, 0, 1);//Month is zero indexed - Jan is zero
jan_Timezone_OffSet = Jan_Date.getTimezoneOffset();
console.log('jan_Timezone_OffSet: ' + jan_Timezone_OffSet)
July_Date = new Date(thisYear, 6, 1);
july_Timezone_OffSet = July_Date.getTimezoneOffset();
console.log('july_Timezone_OffSet: ' + july_Timezone_OffSet)
offsetsNotEqual = july_Timezone_OffSet !== jan_Timezone_OffSet;//True if not equal
console.log('offsetsNotEqual: ' + offsetsNotEqual);
return offsetsNotEqual;//If the offsets are not equal for summer and
//winter then the only possible reason is that DST is used for
//this time zone
}
getTimezoneOffset
उलटा मान लौटाता है, तोMath.max
वास्तव में मानक ऑफसेट वापस आ रहा है । कोड सही है।