⼩程序wxml页⾯实现对时间戳格式转换
从数据库中返回的⽂章发布时间为时间戳,想在wxml页⾯调⽤的时候直接进⾏转换
尝试了下使⽤wxs,最后实现了需要的效果
部分代码为⽹上参考,此处记录下
⾸先新建⼀个my.wxs⽂件
其中写了两个函数 ⼀个将时间戳处理为时间,另⼀个判断时间与当前时间的差值
function getGapTime(date) {
var re = “00”
var timestamp = getDate().getTime();
timestamp = parseInt(timestamp / 1000);
//发表⽂章的时间戳 s
var publicstamp = getDate(date).getTime();
publicstamp = parseInt(publicstamp / 1000)
//时间差s
var gap = timestamp - publicstamp
if (gap < 60) {
re = “刚刚”
} else if (gap < 60 * 60) {
re = parseInt(gap / 60) + “分钟前”
} else if (gap < 60 * 60 * 24) {
re = parseInt(gap / 60 / 60) + “⼩时前”
} else if (gap < 60 * 60 * 24 * 30) {
re = parseInt(gap / 60 / 60 / 24) + “天前”
} else {
re = date.substring(0, 10)  //时间超过1个⽉返回具体的年-⽉-⽇
}
return re
}
var formatNumber = function (n) {
n = n.toString()
return n[1] ? n : ‘0’ + n
}
var regYear = getRegExp("(y+)", “i”);
var dateFormat = function (timestamp, format) {
if (!format) {
format = “yyyy-MM-dd hh:mm:ss”;
}
timestamp = parseInt(timestamp);
var realDate = getDate(timestamp);
function timeFormat(num) {
return num < 10 ? ‘0’ + num : num;
}
var date = [
[“M+”, Month() + 1)],
[“d+”, Date())],
[“h+”, Hours())],
[“m+”, Minutes())],
[“s+”, Seconds())],
[“q+”, Math.floor((Month() + 3) / 3)],
[“S+”, Milliseconds()],
];
var reg1 = (format);
// console.log(reg1[0]);
if (reg1) {
format = place(reg1[1], (FullYear() + '').substring(4 - reg1[1].length));
}
for (var i = 0; i < date.length; i++) {
var k = date[i][0];
var v = date[i][1];
var reg2 = getRegExp("(" + k + ")").exec(format);
if (reg2) {
format = place(reg2[1], reg2[1].length == 1
unix时间戳转换日期格式
v : ("00" + v).substring(("" + v).length));
}
}
return format;
}
getGap: getGapTime,
dateFormat: dateFormat
}
在wxml页⾯中进⾏调⽤
{{my.getGap(aaa.dateFormat(item.pubdate*1000))}}
此处乘以1000是因为后台数据来源于dedecms,刚开始取数据⼀直显⽰1970年,发现是因为没有乘以1000,最终实现如下效果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。