51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

时间显示的BUG:倒计时功能在IOS里显示为NaN

500.jpg

最近做了一个倒计时功能。经过测试后,在PC端,以及安卓以及部分是正常的,没有任何问题。但是产品测试的同事说在IOS低版本里,出现BUG,倒计时的时间现成NaN的情况。

查找问题

这里分享下测试人员的截图:

QQ截图20221018093758.jpg

我咨询了下测试同事,他们用的IOS版本是15.6.1和14.7.1,我用苹果13的IOS16测试是没问题的。所以就奇怪了,于是在网上搜集了下资料发现问题所在,接下来分享下。

解决问题

在IOS里,对于时间格式有一定的要求的。比如不支持"-"模式的,我们需要处理掉它。小编列举下常用的问题以及解决方案。

问题1

时间格式为2022-10-18,这种用new Date没有办法转换,可以调整为2022/10/18。用代码转换可以用以下代码:

new Date('2022-10-18'.replace(/-/g, "/"))

问题2

关于时间临界值:对于00:00:00和24:00:00这两个时间临界值,IOS里会转成NAN。解决方案:

let count_date = '';
let start_date = this.getToday() + ' ' + '02:00:00';
let end_date = this.getToday() + ' ' + '23:59:59';//之前写的是24:00:00,打印出来为NAN
let time_list = [];
let parm = {};
start_date = (new Date(start_date)).getTime();
end_date = (new Date(end_date)).getTime();
do{
    count_date = this.formatDate(start_date);
    parm = {
        time': count_date,
        'complete_time': this.getToday() + ' ' + count_date + ':00'
    }
    time_list.push(parm);
    start_date = start_date + 1000*60*120
} while (start_date <= (end_date+1000))//调整之后在判断里面加了毫秒,不同场景可以有不同处理

问题3

时间格式为2022/09(年月),这种在iOS 用new Date转化之后也会变成NAN,这种情况可以补全日期。

new Date('2022/11/11 11:11:11')

总结

上面列举三个在IOS里常用的问题,估计大家经常会遇到,希望能够帮助到您。如果您有更好的方法可以跟我们一起分享哟。

赞(0)
未经允许不得转载:工具盒子 » 时间显示的BUG:倒计时功能在IOS里显示为NaN