在开发微信小程序的过程中,需要判断后台返回列表中的时间间隔大于10分钟则显示时间,否则不显示,在开发工具上显示了时间,但在ios真机调试时发现时间显示为NAN,经过一番百度发现,iOS不支持后台返回的2018-05-15 10:11:11这样格式的时间导致出现的这个问题,iOS只识别2018/05/15 10:11:11这样的格式
附:
其中msgList为后台返回数据数组,index为列表中的定义的索引值,首先新建wxs文件,复制下方代码到此文件中
var showTime = function(index, msgList) {
var reg = getRegExp("-", "g");
if (index < msgList.length - 1 && index > 0) {
var lastTime = (getDate(msgList[index + 1]['createTime'].replace(reg, '/'))).getTime();
var leftTime = (getDate(msgList[index]['createTime'].replace(reg, '/'))).getTime();
// 上一条和下一条的时间间隔不超过10分钟时,不显示时间
// console.log((lastTime - leftTime) / 1000)
return (lastTime - leftTime) / 1000
} else {
// 随便一个小于600的值
return 10
}
}
module.exports = {
showCreateTime: showTime
}
在需要使用该处理函数的wxml文件中引用,我把time.wxs文件放在了utils文件夹下,请根据自己的目录适当调整
<wxs module="filter" src="../../utils/time.wxs"></wxs>
调用方法(大于10分钟显示时间的调用)
<view class='dialogue-chat-time' wx:if={{filter.showCreateTime(index,msgList)>600}}">
{{item.createTime}}
</view>
参考链接:https://www.jianshu.com/p/cfbd97d31c39
初次开发小程序,如有问题,希望大家多多指教