2012-07-03 9 views
8

गूगल कैलेंडर मुझे rfc3339 पर फेंकता है, लेकिन मेरे सभी तिथियों एक जनवरी से 1970कैसे जावास्क्रिप्ट तारीख वस्तु को आरएफसी 3339 में तारीख कन्वर्ट करने के लिए (1970 के बाद से मिलीसेकेंड)

rfc3999 उन मिलीसेकेंड में कर रहे हैं:

2012-07-04T18:10:00.000+09:00 

जावास्क्रिप्ट वर्तमान समय:। (नई तिथि()) getTime():

1341346502585 

मैं मिलीसेकेंड पसंद करते हैं क्योंकि मैं केवल उल्टी गिनतियां में और तारीखों में नहीं सौदा।

+1

वैसे [आरएफसी 3339] (https://tools.ietf.org/html/rfc3339) [आईएसओ 8601] (https://en.wikipedia.org/wiki/ISO_8601) मानक का एक प्रोफ़ाइल है । देखें [आईएसओ 8601 और आरएफसी 3339 दिनांक प्रारूपों के बीच क्या अंतर है?] (Https://stackoverflow.com/q/522251/642706)। –

उत्तर

11

Date.parse काम करना चाहिए:

Date.parse('2012-07-04T18:10:00.000+09:00') 

हालांकि, Date.parse ब्राउज़रों में बेहद अविश्वसनीय है, तो आप इसे अच्छी तरह से परीक्षण करने के लिए चाहता हूँ। यह काम नहीं करता है, तो यहाँ एक समारोह है:

var googleDate = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})([+-]\d{2}):(\d{2})$/; 

function parseGoogleDate(d) { 
    var m = googleDate.exec(d); 
    var year = +m[1]; 
    var month = +m[2]; 
    var day = +m[3]; 
    var hour = +m[4]; 
    var minute = +m[5]; 
    var second = +m[6]; 
    var msec = +m[7]; 
    var tzHour = +m[8]; 
    var tzMin = +m[9]; 
    var tzOffset = new Date().getTimezoneOffset() + tzHour * 60 + tzMin; 

    return new Date(year, month - 1, day, hour, minute - tzOffset, second, msec); 
} 
+2

धन्यवाद, एक आकर्षण की तरह काम करता है। मैंने रेगेक्स के साथ विशाल कोड का उपयोग किया और यह मेरे लिए काम करना बंद कर दिया, फिर मैं बहुत समय गुगल रहा हूं और यहां पढ़ रहा हूं लेकिन अब तक कुछ भी नहीं। मैं ब्राउज़र एक्सटेंशन में इसका उपयोग कर रहा हूं इसलिए इसे क्रॉसप्लेटफार्म होने की आवश्यकता नहीं है। धन्यवाद – DoTheEvo

+0

थोड़ा संशोधित संस्करण [यहां] (https://jsfiddle.net/qm9osm4a/) जो ज़ेड या लापता टाइमज़ोन के साथ copes, गायब है: टाइमज़ोन में, और मिलीसेकंड गायब है। – Crashthatch

5

दो जावास्क्रिप्ट तारीख पुस्तकालयों रहे हैं कि आप की कोशिश कर सकते:

इनमें से दोनों आपको फ़ंक्शंस देंगे जो आपको एक पार्स करने की अनुमति देते हैं डी किसी भी प्रारूप में तारीखें उत्पन्न करता है।

यदि आप तिथियों के साथ बहुत काम कर रहे हैं, तो आप इन पुस्तकालयों में से किसी एक का उपयोग करना चाहेंगे; हर बार अपने कार्यों को रोल करने से यह बहुत कम परेशानी है।

आशा है कि मदद करता है।

+1

कोड नमूना भयानक होगा। – Den

+0

[moment.js] का उपयोग करना (http://momentjs.com/), 'पल (' 2012-07-04T18: 10: 00.000 + 09: 00 ')। यूनिक्स() 'चाल चलाना चाहिए। – Marie

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