2013-07-27 13 views
6

जावास्क्रिप्ट में उपयोग कर रहा है, अगर मैं MM/DD/YYYY के रूप में तिथि का उल्लेख तिथियाँ, मैं new Date() उपयोग कर सकते हैं स्थानीय समय क्षेत्र के रूप में यह पार्स करने के लिए:,पार्स YYYY-MM-DD स्थानीय समय क्षेत्र

>>> new Date('01/01/1970') 
Date {Thu Jan 01 1970 00:00:00 GMT-0500 (EST)} 

लेकिन अगर मेरे द्वारा निर्दिष्ट YYYY-MM-DD के रूप में की तारीख है, यह मान लिया गया है कि मैं यूटीसी समय क्षेत्र में तारीख दे रहा हूँ:

>>> new Date('1970-01-01') 
Date {Wed Dec 31 1969 19:00:00 GMT-0500 (EST)} 

वहाँ एक आसान तरीका है जब 'YYYY-MM-DD' दिनांकों को पार्स स्थानीय समय क्षेत्र का उपयोग करने की तारीख पार्सर बताने के लिए है ? या मुझे पहले इसे ठीक करने के लिए .replace(/^(\d{4})-(\d{2})-(\d{2})$/, '$2/$3/$1') का उपयोग करने की आवश्यकता है?

+0

https://developer.mozilla.org के अनुसार/एन-यूएस/डॉक्स/वेब/जावास्क्रिप्ट/संदर्भ/ग्लोबल_ऑब्जेक्ट/दिनांक/पार्स, "यदि आप समय क्षेत्र निर्दिष्ट नहीं करते हैं, तो स्थानीय समय क्षेत्र माना जाता है।" मुझे यकीन नहीं है कि यह मामला क्यों नहीं है। – mash

+1

या 'नई तिथि (' 1 9 70-01-01 '। जगह (/ -/g,'/'))' और इसे लोकल के रूप में पार्स किया जाएगा। – fbynite

+1

मुझे लगता है कि यह [थ्रेड] (http://stackoverflow.com/questions/2587345/javascript-date-parse) आपको 'Data.parse' के बारे में बहुत सारी जानकारी दे सकता है :) –

उत्तर

2

Date.parse प्रकार कार्य करता है:

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.4.2

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

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15

ECMAScript तिथि-समय आईएसओ 8601 विस्तारित स्वरूप का सरलीकरण पर आधारित के लिए एक स्ट्रिंग विनिमय प्रारूप परिभाषित करता है। प्रारूप निम्नानुसार है: YYYY-MM-DDTHH: mm: ss.sssZ

जेड समय क्षेत्र ऑफ़सेट "Z" (यूटीसी के लिए) या तो "+" या "-" के बाद निर्दिष्ट समय अभिव्यक्ति है एचएच: मिमी

अनुपस्थित समय क्षेत्र ऑफसेट का मूल्य "Z" है।

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

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