以下脚本返回20而不是21!
var d = new Date("2010/03/21"); document.write(d.getDate());
我究竟做错了什么?这是JavaScript错误吗?
该Date.parse方法依赖new Date(string)于实现(等效于Date.parse(string))。
Date.parse
new Date(string)
Date.parse(string)
虽然此格式将在现代浏览器中可用,但您不能百分百确定浏览器将正确解释您所需的格式。
我建议您处理您的字符串,并将Date构造函数与年,月和日参数一起使用:
// parse a date in yyyy-mm-dd format function parseDate(input) { var parts = input.match(/(\d+)/g); // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based }