自己模拟器上看,是这样的
但是预览到手机的时候,发现就不是 5小时前,而是“刚刚”。
查了电脑的事区设置以及手机上的时区设置,都是一样的。有没有人碰到过。
自己debug了一下:
'pubDate': getDateDiff(new Date(item['pubDate']).getTime()),
发现是getDateDiff这个函数引起的,如果没有用这个函数,两边的显示是一致的。各位大侠帮忙看下getDateDiff有啥问题,这个函数也是网上找的。
function getDateDiff(dateTimeStamp) {
var result;
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var halfamonth = day * 15;
var month = day * 30;
var now = new Date().getTime();
var diffValue = now - dateTimeStamp;
if (diffValue < 0) {
return;
}
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
if (monthC >= 1) {
if (monthC <= 12)
result = "" + parseInt(monthC) + "月前";
else {
result = "" + parseInt(monthC / 12) + "年前";
}
}
else if (weekC >= 1) {
result = "" + parseInt(weekC) + "周前";
}
else if (dayC >= 1) {
result = "" + parseInt(dayC) + "天前";
}
else if (hourC >= 1) {
result = "" + parseInt(hourC) + "小时前";
}
else if (minC >= 1) {
result = "" + parseInt(minC) + "分钟前";
} else {
result = "刚刚";
}
return result;
};
2018-09-04 19:11:10
这种格式
请告诉我你的 item['pubDate'] 的值是什么格式的?你随便打印一个看看。
<
text
class
=
'time'
>{{format.date(item.pubDate)}}</
text
>
<
wxs
module
=
'format'
>
var date = function(t) {
var regexp = getRegExp('-', 'g');
t = t.replace(regexp, '/');
var now = getDate().getTime();
var time = getDate(t).getTime();
if (time > now) {
return '刚刚';
} else {
var e = Math.round((now - time) / 1000);
if (e <
60
) return '刚刚';
else if (e < 1800) return Math.round(e / 60) + '分钟前';
else if (e < 3600) return '半小时前';
else if (e < 86400) return Math.round(e / 3600) + '小时前';
else if (e < 86400 * 7) return Math.round(e / 86400) + '天前';
else if (e < 86400 * 30) return Math.round(e / (86400 * 7)) + '周前';
else if (e < 86400 * 365) return Math.round(e / (86400 * 30)) + '个月前';
else return Math.round(e / (86400 * 365)) + '年前';
}
return '';
};
module.exports = {
date: date
};
</wxs>