क्रोम & फ़ायरफ़ॉक्स: मानक जावास्क्रिप्ट दिनांक निर्माता आईएसओ 8601 दिनांक स्ट्रिंग लेता है।
var sampleDate = new Date("2010-03-07T02:13:46Z");
रिटर्न इस तिथि वस्तु: उदाहरण के लिए: "सूर्य मार्च 07 2010 13:13:46 GMT + 1100 (ऑस्ट्रेलिया पूर्वी डेलाइट समय)"
यह IE में काम नहीं करता है (नवीनतम सहित
Date.prototype.setISO8601 = function (string) {
var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var d = string.match(new RegExp(regexp));
var offset = 0;
var date = new Date(d[1], 0, 1);
if (d[3]) { date.setMonth(d[3] - 1); }
if (d[5]) { date.setDate(d[5]); }
if (d[7]) { date.setHours(d[7]); }
if (d[8]) { date.setMinutes(d[8]); }
if (d[10]) { date.setSeconds(d[10]); }
if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}
offset -= date.getTimezoneOffset();
time = (Number(date) + (offset * 60 * 1000));
this.setTime(Number(time));
}
उपयोग::
आईई 9)
यहाँ http://delete.me.uk/2005/03/iso8601.html में पॉल Sowden द्वारा एक क्रॉस-ब्राउज़र समाधान है
var date = new Date();
date.setISO8601("2005-03-26T19:51:34Z");
यदि आप जावास्क्रिप्ट में बहुत अधिक डेटाटाइम मैनिपुलेशन करते हैं, तो मैं कुछ जेएस पुस्तकालयों को MomentJS जैसे जांचने का भी सुझाव दे सकता हूं। यह कुछ सामान्य चीजों को संभालता है जैसे दिनांक पार्सिंग, स्वरूपण और गणना दो तिथियों के बीच अंतर और कई स्थानीयकरण के लिए समर्थन है।
स्रोत
2011-06-01 03:20:57
मुझे लगता है कि सवाल का डुप्लिकेट के रूप में यह बंद करने के लिए मतलब नहीं था:। – Ryan
'(मैं सहमत नहीं है कि इस सवाल का पता चला की एक सटीक डुप्लिकेट है पार्सिंग आईएसओ timestamps मानव इनपुट पार्स करने से एक अलग चिंता का विषय है। – Andrew