js中如果用-格式的时间转换为时间戳在苹果手机上为NaN

今天同事问了我一个问题,说把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

猜你喜欢

转载自blog.csdn.net/xiaolinlife/article/details/84849205
今日推荐