今天同事问了我一个问题,说把2018-12-12 23:00:00 转化为时间戳之后,在电脑和安卓系统上都可以正常显示,但是在ios上面确实显示为NAN,然后就问我什么原因,我说有可能是时间格式的问题,在ios上面不支持-格式的时间转化为时间戳,于是就是试了一下,果然如此。
时间转换
我们要转换的时间 2018-12-12 23:00:00
let stopTime = new Date('2018-12-12 23:00:00').getTime();
或者
let stopTime = new Date('2018-12-12 23:00:00').valueOf();
这个时候在android手机正确转换,但是在ios上就会出现NaN
兼容ios和android用/类型的时间格式
let stopTime = new Date('2018/12/12 23:00:00').getTime();
这样在ios和android上都可以进行显示
转换时间格式
let stopTime = new Date('2018-12-12 23:00:00'.replace(/-/g, '/')).getTime();
// replace(/-/g, '/') /g全局替换所有的指定字符串 (注意一下)
这样就可以解决后台传递时间带有-的格式!
需要补充一点:
new Date('2018/12/12‘).getTime()
new Date('2018/12/12').valueOf()
// 1544544000000
得到的毫秒数是指2018/12/12 00:00:00 这个时间
一天的毫秒数是:
new Date('2018/12/13').valueOf() - new Date('2018/12/12').valueOf()
// 86400000