Date构造函数接受任何值。如果参数的原始[[value]]是数字,则创建的日期具有该值。如果原始[[value]]为String,则规范仅保证Date构造函数和parse方法能够解析Date.prototype.toString和Date.prototype.toUTCString()的结果。
设置日期的一种可靠方法是构造一个日期并使用
setFullYear和
setTime方法。
ECMA-262 r3没有定义任何日期格式。将字符串值传递给Date构造函数或Date.parse具有与实现相关的结果。最好避免。
编辑: 来自comp.lang.javascript常见问题解答的条目是:扩展ISO 8601本地日期格式
YYYY-MM-DD可以通过
Date以下方式解析为:
function parseISO8601(dateStringInRange) { var isoExp = /^s*(d{4})-(dd)-(dd)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; }


