Step 1:新建wxs文件
date.wxs:处理信息时间的函数,将Date格式的日期转化为如“刚刚”、“?分钟前”、“?天前“等时间文本。
var filter = { formatMsgTime: function (dateStr) { var targetDate = getDate(dateStr); var year = targetDate.getFullYear(); var month = targetDate.getMonth() + 1; var day = targetDate.getDate(); var hour = targetDate.getHours(); var minute = targetDate.getMinutes(); var second = targetDate.getSeconds(); var nowDate = getDate(); var now_new = Date.parse(nowDate.toDateString()); var milliseconds = 0; var timeSpanStr; milliseconds = now_new - targetDate; if (milliseconds <= 1000 * 60 * 1) { timeSpanStr = '刚刚'; } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'; } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'; } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'; } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) { timeSpanStr = month + '-' + day; } else { timeSpanStr = year + '-' + month + '-' + day; } return timeSpanStr; } } module.exports = { formatMsgTime: filter.formatMsgTime }
注:在wxs中无法new对象,这里要达到new Date()的效果可采用全局函数getDate()。
Step 2:引入wxml文件中
Step 3:调用函数
{{filter.formatMsgTime('2018-07-18 17:07:05')}}
其他示例:
var filter = { // float类型的value只保留两位小数 numberToFix: function (value) { return value.toFixed(2); }, // 判断数组array中是否存在值value valueInArray: function (array, value) { return array.indexOf(value); } } module.exports = { numberToFix: filter.numberToFix, valueInArray: filter.valueInArray, }