js 时间计算(ios和安卓)不兼容问题
最近在做一个移动端的项目,需要计算出约定时间和当前时间相差的天数,发现在安卓上没问题,在ios上计算出的值为NaN?
timeDifference(time) {//传入约定时间
let new_date = new Date(); //新建一个日期对象,默认现在的时间
let old_date = new Date(time);
if (old_date - new_date > 0) {
return (old_date - new_date)/(1000*3600*24);
} else {
return 0;
}
},
调用timeDifference()方法在ios中值为NAN
问题原因:
后台给出的约定时间是“2021-11-28 23:59:59”格式,而ios获取的当前时间是“2021/11/3023:59:59”格式,所以约定时间new Date(tiem)在ios中为NaN!
优化后的代码:
timeDifference(time) {//传入约定时间
let new_date = new Date(); //新建一个日期对象,默认现在的时间
let old_date = new Date(time.replace(new RegExp(/-/gm), "/")); //将约定时间转换为"yyyy-MM-dd HH:mm:ss"格式化日期
if (old_date - new_date > 0) {
return (old_date - new_date)/(1000*3600*24);
} else {
return 0;
}
},

浙公网安备 33010602011771号