interview - javascript javatpoint



YYYY-MM-DD!=YYYY/MM/DD (2)

इसकी वजह है वैश्वीकरण। डैश (-) अंग्रेजी अंकन (GMT) नहीं है। जावास्क्रिप्ट नोटेशन को पार्स करता है। संस्कृति सेट करने का प्रयास करें और फिर डैश नोटेशन का उपयोग करें।

क्रोम में, हमें कुछ अजीबता मिलती है

> new Date("2014-01-01") - new Date("2014/01/01")
< 3600000

और इसकी वजह है

new Date("2014-01-01")
Wed Jan 01 2014 01:00:00 GMT+0100 (CET)

जबकि

new Date("2014/01/01")
Wed Jan 01 2014 00:00:00 GMT+0100 (CET)

'-' समय में 1 घंटा क्यों जोड़ते हैं?


Answer #1

मेरा मानना ​​है कि यह अंतर Date.parse द्वारा UTC को एक स्ट्रिंग में जोड़ने के कारण है, लेकिन दूसरे में नहीं, अर्थात्: / Date.parse () में एक कानूनी विभाजक नहीं है, जिसका अर्थ है कि UTC के पार्स करने के बाद इसे समय पर नहीं जोड़ा जाता है। क्योंकि ' एक कानूनी विभाजक है, इसे पार्स किया जाता है और फिर UTC को लौटाए गए समय में जोड़ा जाता है।

Date.parse का उपयोग new Date() विधि द्वारा किया जाता है और इसका कार्यान्वयन ब्राउज़र विशिष्ट है, मुझे आश्चर्य है कि इस तरह की बात अधिक बार सामने नहीं आती है।

Date.parse लिए Date.parse कहता है:

स्ट्रिंग की सामग्री के आधार पर स्थानीय समय, UTC समय या किसी अन्य समय क्षेत्र में समय के रूप में व्याख्या की जा सकती है। फ़ंक्शन पहले दिनांक समय स्ट्रिंग प्रारूप (15.9.1.15) में बताए गए नियमों के अनुसार स्ट्रिंग के प्रारूप को पार्स करने का प्रयास करता है। यदि स्ट्रिंग उस प्रारूप के अनुरूप नहीं है, तो फ़ंक्शन किसी भी कार्यान्वयन-विशिष्ट उत्तराधिकार या कार्यान्वयन-विशिष्ट दिनांक स्वरूपों पर वापस आ सकता है।

इसलिए मैं सुझाव दूंगा कि आप पार्स करने से पहले मैन्युअल रूप से एक टाइमज़ोन में जोड़ें, या new Date() द्वारा लौटाए गए समय को छोड़ दें, लेकिन इससे आधी रात के आसपास समस्याएँ पैदा हो सकती हैं आदि सबसे सुरक्षित बात यह है कि क्या आप तारीख को प्राप्त कर सकते हैं दोनों प्रणालियों से अधिक विशिष्ट प्रारूप, समयक्षेत्र की जानकारी के साथ।





javascript