小程序在xwml中实现类似于web在html中引用JavaScript代码
程序员文章站
2024-03-13 23:43:22
...
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文件中
<wxs module="filter" src="../../utils/date.wxs"></wxs>
Step 3:调用函数
<view>{{filter.formatMsgTime('2018-07-18 17:07:05')}}</view>
其他示例:
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,
}