2012-09-21 12 views
9

मुझे "YYYY-MM-DD" के प्रारूप में मेरे DS.Model पार्सिंग तिथियों के साथ कोई समस्या है। वे हमेशा एक दिन पीछे रहते हैं।DS.Model तिथि विशेषता पार्स दिनांक (YYYY-MM-DD) गलत

यहाँ एक उदाहरण है:

http://jsfiddle.net/ZUV8v/

कंसोल पर दिनांक वस्तुओं का उपयोग करते हुए इसी तरह के परिणाम मैं

> new Date('2012-09-20') 
Wed Sep 19 2012 17:00:00 GMT-0700 (PDT) 

यह एक एंबर बग या एक जावास्क्रिप्ट बग या एक क्रोम बग या कर रहा हूँ है मुझे कुछ याद आ रहा है?

क्रोम संस्करण 21.0.1180.89 पर OSX 10.7

+0

क्या आप अभी भी अपने जेएस पहेली के साथ इसे पुन: उत्पन्न करने में सक्षम हैं? मुझे निम्नलिखित परिणाम मिलते हैं, और यह सही लगता है: 'तिथि: गुरु सितम्बर 2012 03:00:00 GMT + 0300 (अरबी मानक समय) '। –

+0

मेरा मानना ​​है कि उस समय क्षेत्र के कारण तिथि आपके लिए सही है। इसलिए @jasolko की तरह कहा गया है कि जावास्क्रिप्ट शून्य के साथ गुम मूल्यों में भर जाता है और फिर वर्तमान समय क्षेत्र के आधार पर इसका मूल्यांकन करता है। मेरे मामले में प्रशांत समय क्षेत्र में होने से पिछले दिन की तारीख को 7 घंटे तक पहुंचाया जा सकता है। –

उत्तर

4

मैं यह सिर्फ दूसरे दिन का सामना किया।

ECMAScript Specification 15.9.1.15

सभी नंबरों आधार से 10 होना चाहिए एम.एम. या डीडी क्षेत्रों अनुपस्थित रहे हैं के अनुसार, "01" मूल्य के रूप में प्रयोग किया जाता है। यदि एचएच, मिमी, या एसएस फ़ील्ड अनुपस्थित हैं "00" का उपयोग मूल्य के रूप में किया जाता है और अनुपस्थित एसएसएस फ़ील्ड का मान "000" है। अनुपस्थित समय क्षेत्र ऑफ़सेट का मान "Z" है।

new Date('2012-09-20') 

रूप

new Date("2012-09-20T00:00:00.000Z") 

सांत्वना तो आपके स्थानीय समय क्षेत्र में मूल्य आउटपुट में ही है।

+0

ठीक है कि समझ में आता है। क्या आपको लगता है कि एम्बर-डेटा को अलग-अलग तारीख को पार्स करना चाहिए या जेसन डेट वैल्यू में हमेशा समय और टाइमज़ोन शामिल होना चाहिए? –

+0

क्षमा करें मैं आमतौर पर सप्ताहांत में यहां नहीं दिखता हूं। मुझे लगता है कि हमेशा टाइमज़ोन को शामिल करना समझ में आता है। मैंने कभी-कभी इन-हाउस ऐप्स लिखते हैं जो एक ही समय क्षेत्र में रहते हैं और उन्हें पहले कभी नहीं सोचना पड़ता था। –

+0

कोई जांच नहीं। यदि यह एक डाटाटाइम ऑब्जेक्ट है, तो मैं सहमत हूं लेकिन ऐसा लगता है कि जावास्क्रिप्ट में केवल तारीखों को करने का कोई अच्छा तरीका नहीं है। मैंने serialization के बारे में एक नया सवाल शुरू किया। http://stackoverflow.com/questions/12538242/serialize-date-attributes। सहायता के लिए धन्यवाद। –