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;
     } 
   },

 

posted @ 2021-12-02 18:00  BUGdivertor  阅读(420)  评论(0)    收藏  举报