दिनांक निर्माता किसी भी मूल्य को स्वीकार करता है। यदि तर्क का आदिम [[मान]] संख्या है, तो बनाई गई तिथि में वह मान है। यदि आदिम [[मूल्य]] स्ट्रिंग है, तो विनिर्देश केवल गारंटी देता है कि दिनांक कन्स्ट्रक्टर और पार्स विधि Date.prototype.toString और Date.prototype.toUTCString()
एक विश्वसनीय तरीका के परिणाम को पार्स करने में सक्षम हैं एक तिथि निर्धारित करने के लिए एक बनाना है और setFullYear
और setTime
विधियों का उपयोग करना है।
कि का एक उदाहरण यहां प्रकट होता है: http://jibbering.com/faq/#parseDate
ECMA-262 R3 किसी भी तिथि प्रारूप को परिभाषित नहीं करता। तिथि कन्स्ट्रक्टर या Date.parse को स्ट्रिंग मान पास करना कार्यान्वयन-निर्भर परिणाम है। यह सबसे अच्छा बचा है।
संपादित करें: comp.lang.javascript पूछे जाने वाले प्रश्न से प्रविष्टि है: एक विस्तारित आईएसओ 8601 स्थानीय दिनांक स्वरूप
YYYY-MM-DD
निम्नलिखित के साथ एक
Date
को पार्स नहीं किया जा सकता है: -
/**Parses string formatted as YYYY-MM-DD to a Date object.
* If the supplied string does not match the format, an
* invalid Date (value NaN) is returned.
* @param {string} dateStringInRange format YYYY-MM-DD, with year in
* range of 0000-9999, inclusive.
* @return {Date} Date object representing the string.
*/
function parseISO8601(dateStringInRange) {
var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
date = new Date(NaN), month,
parts = isoExp.exec(dateStringInRange);
if(parts) {
month = +parts[2];
date.setFullYear(parts[1], month - 1, parts[3]);
if(month != date.getMonth() + 1) {
date.setTime(NaN);
}
}
return date;
}
आप अपने कोड नमूने पर कुछ कॉपी-पेस्ट त्रुटियाँ हैं बयान के लिए देखो: 'के लिए (वर घ = 0; d ';' कि बढ़ा देंगे एक 'SyntaxError' ... – CMS