Date.parse()不兼容的问题

JS中Date.parse()在iOS和Android平台不兼容

Posted by Wu on November 5, 2018

JS获取特定时间点的时间戳时,在iOS系统中的坑

iOS中JS的坑

var mytime = '2018-11-05 18:30:00';
console.log('时间:' + mytime);
var mytimestamp = Date.parse(new Date(mytime))/1000;
console.log('时间戳:' + mytimestamp);

JS获取特定时间点的时间戳时,代码在Android中执行没有什么问题,但是在iOS系统的Safari浏览器、微信小程序、微信浏览器,已经mac OS系统的Safari浏览器中,此代码最后会输出:

[Log] 时间:2018-11-05 18:30:00
[Log] 时间戳:NaN

没有得到意想的时间戳。

暂时只测试了: iOS系统的Safari浏览器、微信小程序、微信浏览器,已经mac OS系统的Safari浏览器

最后发现在苹果系统中,只识别

2018/11/05
2018,11,05

这种的日期格式。

处理办法:

改变日期格式:

var mytime = '2018/11/05 18:30:00';

console.log('时间:' + mytime);
var mytimestamp = Date.parse(new Date(mytime))/1000;
console.log('时间戳:' + mytimestamp);

或者做个兼容处理:

var mytime = '2018-11-05 18:30:00';
console.log('时间:' + mytime);

mytime=data.replace(/-/g, '/');

var mytimestamp = Date.parse(new Date(mytime))/1000;
console.log('时间戳:' + mytimestamp);

本文首次发布于 Wu Blog, 作者 @Wu ,转载请保留原文链接.