1
2 3 4 5 6 |
var timestart = '2010-05-04' ; var timeend = '2015-04-01' ; var time1 = (timestart ).toString(); console.log(time1); var time2 = (timeend ).toString(); timestart = new Date(time1); timeend = new Date(time2); |
问题就在于 new Date(time1)这个构造函数无法正确的生成Date对象,console.log(time1)返回
值为NaN.,问题在哪里呢?
正确的做法
1 2 3 4 |
var time1 = (timestart ).toString(); var time2 = (timeend ' ).toString(); timestart = new Date(Date.parse(time1.replace(/-/g, "/" ))).getTime(); timeend = new Date(Date.parse(time2.replace(/-/g, "/" ))).getTime(); |
主要的变化是对默认的日期格式进行了转换, 基于'/'格式的日期字符串,才是被各个浏览器所广泛支持的,‘-’连接的日期字符串,则是只在chrome下可以正常工作。
知识点总结
'2015-05-04'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是'2015/05/05'.