你知道new Date('2016-01-01')
和new Date('2016/01/01')
对应的是不同的时间吗?
实验
new Date(2016,1,1) //是2016年2月1号 不是1月1号 Month是从0开始
new Date('2016-01-01') //UTC时间,不是当前时区,对应北京时间就是08:00:00
new Date('2016-1-1') //当前时区时间
new Date('2016-01-01 00:00:00') //当前时区时间
new Date(2016,0,1) //当前时区的时间
原因
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
原则上 new Date只接受 2016-02-01T00:00:00Z 2016-02-01T00:00:00+08:00 这样的字符串,像2016-1-1,2016-01-01 00:00都是非标准的,事实上在IE上就没办法new出来。
标准时间格式为
yyyy-MM-ddThh:mm:ss.SSSZ (代表UTC时间)
yyyy-MM-ddThh:mm:ss.SSS+08:00 (指定时区)
(正文完)