美文网首页
2021-10-14 new Date() 在IOS上的两个坑

2021-10-14 new Date() 在IOS上的两个坑

作者: 追寻1989 | 来源:发表于2021-10-14 11:38 被阅读0次

1、数据格式之坑

最开始的时间格式是一个类似于这样的2020-09-07 24:00:00,然后使用new Date(),如下

let deadTime = new Date('2020-09-07 00:00:00');  //IOS得到的值是NaN,安卓正常

发布到移动端后,iPhone上测试了deadTime是NaN,安卓上正常获取时间,网上查了查,说iOS不识别2020-09-07包含的【-】,所以就又转换为2020/09/07 00:00:00的格式;

let deadTime = new Date('2020-09-07 00:00:00'.replace(/-/g, '/'));  //转换后变成2020/09/07 00:00:00安卓和IOS都兼容

这里放上实际测试兼容的一些格式对比图:

2、临界值之坑

但是问题又来了,如果这里是我们想取9月7日的最后一刻即 2020/09/07 24:00:00 IOS依然是NaN,安卓可以正常取到值。。

let deadTime = new Date('2020/09/07 24:00:00');  ////IOS得到的值是NaN,安卓正常

解决办法:

// 比较粗糙的解决方式
let deadTime = new Date('2020/09/07 23:59:59');  //少一秒IOS才可以取值,否则为NaN

// 比较精确的解决方式
let deadTime = new Date('2020/09/08 00:00:00') // 直接在日期+1天
let deadTime = new Date('2020/09/07 00:00:00').getTime() + 24 * 3600 * 1000;  //获取9月7日初始时间再+1天的时间戳,精确到毫秒

相关文章

网友评论

      本文标题:2021-10-14 new Date() 在IOS上的两个坑

      本文链接:https://www.haomeiwen.com/subject/qigyoltx.html