JS Date的坑

1

new Date('2019/1/1').getTime()
//1546272000000
new Date('2019/1/1').getTime()
//1546272000000
new Date('2019-01-01').getTime()
//1546300800000
new Date('2019-01-01 08:00:00').getTime()
//1546300800000
new Date('2019-1-1').getTime()
//1546272000000
  • 一定要注意当日期字符串格式为('yyyy-mm-dd')时,mm或者dd为两位数时,会产生hh:mm:ss,导致getTime()的毫秒数不同(增加八个小时)

2

通常,由于习惯了SQL中的datetime格式,日期是打成yyyy-mm-dd的格式,然而,safari竟然不支持这样的格式,所以当你输入如下语句时,会返回空的时间。ios的微信浏览器环境也是。

new Date('2019-01-01')

Safari支持的格式是yyyy/mm/dd这样的,差别主要在于短横-与斜杠/,而斜杠这样的格式在其他常见的浏览器中也都是可以正常运行的,所以只需要都换成斜杠就可以了:

new Date('2019/1/1'

推荐阅读更多精彩内容