小程序在iOS端,时间显示NaN的根本原因

2019-10-10  本文已影响0人  读心读书

现象:在微信开发工具测试时间显示正常、真机测试时间显示正常。安卓手机测试时间显示正常、开发工具连接iOS手机测试时间显示正常。

体验版中,iOS手机测试时间显示NaN。

原因:当进行网络请求的时候,后端返回日期格式:"2018-05-03"。iOS手机或者浏览器不支持这种类型的日期格式。
例如:

      console.log("2019-10-09 19:42:46")
      console.log(Date.parse("2019-10-09 19:42:46"))
      console.log(Date.parse("2019-10-09 19:42:46".replace(/-/g,'/')))

ios浏览器转化为时间戳效果如图:


在这里插入图片描述

需要转换日期格式:

   const  time = "2018-05-03"
   time.replace(/\-/g, "/");
   console.log(time);         2019/05/03
   
   
  // 在小程序的工具文件util.js中进行封装
  function formatTime(date) {
      var time = date==null?"": Date.parse(date.replace(/-/g, '/'));
      var date = new Date(time);
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var day = date.getDate();
      var hour = date.getHours();
      var minute = date.getMinutes();
      var second = date.getSeconds();
      return [year, month, day].map(formatNumber).join('/');
    }

这里为什么将日期转化为时间戳?

因为后端返回的只有日期,如果直接将日期转换为格式:"2019/05/03",在iOS端时间还是显示NaN。

上一篇 下一篇

猜你喜欢

热点阅读