关于微信小程序中的new Date

2019-11-27  本文已影响0人  尤雨溪的大迷弟

问题1:微信小程序中iOS系统识别不了yyyy-mm-dd hh:mm,转为yyyy/mm/dd hh:mm

new Date("2019-12-05 11:36")
// 当new Date中的时间格式为这样的时候,会返回Invalid Date

正确应为:

new Date("2019/12/05 11:36")

问题2:将时间按时区转化,解决真机与开发者工具时间不一致的bug:

从接口上获取的时间数据,需求是要计算这条数据的距当前时间的倒计时,思路是new Date(数据).getTime() - new Date().getTime(),得到相差的时间戳再转为年月日时分秒。

在微信开发者工具上,时间是正确的,但是在真机上展示的与微信开发者工具相差8h,最后测试半天加搜资料,发现new Date在不同终端上获取的时间可能默认的时区不同(具体原因未知)。所以在处理数据时加上时区new Date(数据+'+0800'),达到在不同终端,都是按照同个时区获取。

封装了一个处理函数,解决以上两个问题:

/**
* 将时间按时区转化,解决真机与开发者工具时间不一致的bug
* ios识别不了yyyy-mm-dd hh:mm,转为yyyy/mm/dd hh:mm
*/
fixDate(strTime) {
   if (!strTime) {
       return '';
   }
   var tempDate = new Date(strTime+'+0800');
   if(tempDate=='Invalid Date'){
      strTime = strTime.replace(/T/g,' ');
      strTime = strTime.replace(/-/g,'/');
      tempDate = new Date(strTime+'+0800');
   }
   tempDate.toLocaleDateString();
   return tempDate;
},

更博客好累😭...

上一篇下一篇

猜你喜欢

热点阅读