原因:将字符串形式的日期转换成日期对象,不支持 "2016-10-31" 这种格式。
将字符串形式的日期转换成日期对象
示例:
new Date("2016,10,31"); // 正确
new Date("2016/10/31"); // 正确
new Date("2016-10-31"); // 错误
注:虽然在 chrome 中, 可以用 new Date("2016-10-31") 这种方式,但是为了兼容性以及准确性,建议用前面两种。当然也可以用正则把 "2016-10-31" 替换成前面两种格式。
正则替换:
var str = "2016-10-31";
new Date(str.replace(/-/g, "/")); 或 new Date(str.replace(/-/g, ","));