2012-08-07 27 views
5

में मैं के साथ एक जावास्क्रिप्ट तारीख वस्तु बना सकते हैं:पार्स JSON (ISO8601) दिनांक स्ट्रिंग जावास्क्रिप्ट

var d=new Date('2012-08-07T07:47:46Z'); 
document.write(d); 

यह ब्राउज़र के समय क्षेत्र का उपयोग कर तारीख लिखेंगे। लेकिन मैं (कोई 'Z') ऐसा करने में सक्षम होना चाहिए:

var d=new Date('2012-08-07T07:47:46'); 
document.write(d); 

यह ऊपर के रूप में ही दिखाए, लेकिन ISO8601 मानक, एक समय क्षेत्र के बिना एक स्ट्रिंग के अनुसार (जैसे +01: 00) और बिना ' जेड ', तारीख को स्थानीय समय क्षेत्र में माना जाना चाहिए। तो ऊपर दूसरा उदाहरण डेटाटाइम को 7:47 बजे लिखना चाहिए।

मुझे सर्वर से डेटाटाइम स्ट्रिंग मिल रही है और मैं बिल्कुल उस डेटाटाइम को प्रदर्शित करना चाहता हूं। कोई विचार?

उत्तर

-1

आप सही हैं, जावास्क्रिप्ट ISO8601 के साथ अच्छी तरह से नहीं खेलता है।

इस समारोह का प्रयोग करें वांछित प्रारूप में बदलने के लिए:

function ISODateString(d) { 
    function pad(n){ 
    return n<10 ? '0'+n : n 
    } 
    return d.getUTCFullYear()+'-' 
    + pad(d.getUTCMonth()+1)+'-' 
    + pad(d.getUTCDate())+'T' 
    + pad(d.getUTCHours())+':' 
    + pad(d.getUTCMinutes())+':' 
    + pad(d.getUTCSeconds())+'Z' 
} 
var d = new Date(); 
print(ISODateString(d)); 

से लिया: Mozilla

+4

यह एक आईएसओ दिनांक स्ट्रिंग बनाता है, यह इसे पार्स नहीं करता है –

6

मैंने पाया इस स्क्रिप्ट अच्छी तरह से काम करता है। यह Date.parse विधि को बढ़ाता है।

https://github.com/csnover/js-iso8601/

Date.parse('2012-08-07T07:47:46'); 

यह new Date() निर्माता पर फिर भी काम नहीं करता।

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