前端 计算发布时间(如“1小时前”、“3天前”等)
这样效果,在c端比较常见,通过前端也可以处理
代码如下:
// 计算 小时
timeAgo(createTime) {
// 将 createTime 字符串转换为 Date 对象
const createDate = new Date(createTime);
const now = new Date();
const diffInSeconds = Math.floor((now - createDate) / 1000); // 计算时间差(秒)
// 定义时间单位
const units = [{
label: '年',
seconds: 60 * 60 * 24 * 365
},
{
label: '个月',
seconds: 60 * 60 * 24 * 30
},
{
label: '天',
seconds: 60 * 60 * 24
},
{
label: '小时',
seconds: 60 * 60
},
{
label: '分钟',
seconds: 60
},
{
label: '秒',
seconds: 1
}
];
// 遍历单位,找到合适的时间差
for (const unit of units) {
const diff = Math.floor(diffInSeconds / unit.seconds);
if (diff > 0) {
return `${diff} ${unit.label}前`;
}
}
return '刚刚'; // 如果时间差小于1秒
},
在模板在使用方法 : <view class="fs-22 c-black-3 ">{{ timeAgo(item.createTime) }}</view>