问题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;
},
更博客好累😭...