小程序
在做微信小程序开发时,有些比较偏社交属性的小程序,通常会不直接显示日期时间,而是转为一个粗略、模糊的日期时间概念。
即,前端显示为:N月前、N天前、N小时前、N分钟前、刚刚等。这种简化了的日期模式。
于是,我们就需要在小程序开发过程中配置一个通用方法/过滤器,将后端发来的默认日期格式转换为上面所述的简化日期。
const formatMsgTime = function (dateStr) {
var dateObj = dateStr.replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '').replace(/(-)/g, '/')
var targetDate = new Date(dateObj);
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 = new Date();
var now_new = Date.parse(nowDate.toString());
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 == nowDate.getFullYear()) {
timeSpanStr = month + '-' + day;
} else {
timeSpanStr = year + '-' + month + '-' + day;
}
return timeSpanStr;
}
module.exports = {
formatMsgTime: formatMsgTime
}1,将上述代码保存为utils-days.js文件,放置在小程序公用目录里;
2,在需要使用的页面或者模块的js文件头部,导入该文件;
const utilsDays = require('../utils/utils-days');3, 使用该方法;
this.setData({
newDate: utilsDays.formatMsgTime(systemDate);
})见该文章右侧下载链接
模板类型:
软件版本:
评分等级:
下载地址:
注意事项:
本站内分享的模板默认都是基于YzmCMS,详细安装方法见模板安装说明。
如果下载的模板无法正常使用或报错,请至YzmCMS社区论坛寻求帮助,或者加入QQ群(161208398)谈论反馈问题。
ps: 小程序、代码片段或静态模板等,请忽略该注意事项。
23
模板类型:
软件版本:
评分等级:
下载地址:
注意事项:
本站内分享的模板默认都是基于YzmCMS,详细安装方法见模板安装说明。
如果下载的模板无法正常使用或报错,请至YzmCMS社区论坛寻求帮助,或者加入QQ群(161208398)谈论反馈问题。
ps: 小程序、代码片段或静态模板等,请忽略该注意事项。