如何在JavaScript中使用moment.js自定义时间戳格式化规则
你需要的日期格式化效果可通过判断时间差调用moment.js对应方法实现,参考代码如下:
// 参数为你存储的毫秒级时间戳(即通过 `+new Date()` 得到的值) function formatMsgTime(timestamp) { const targetTime = moment(timestamp); // 计算目标时间与当前时间的分钟差 const minuteGap = moment().diff(targetTime, 'minutes'); // 不足1小时调用fromNow,超过则调用calendar return minuteGap < 60 ? targetTime.fromNow() : targetTime.calendar(); } // 测试用例 // 10分钟前的时间戳 console.log(formatMsgTime(Date.now() - 10 * 60 * 1000)); // 输出:10 minutes ago // 70分钟前的时间戳 console.log(formatMsgTime(Date.now() - 70 * 60 * 1000)); // 输出:Today at 4:00 am 这类格式 // 1天前的时间戳 console.log(formatMsgTime(Date.now() - 24 * 60 * 60 * 1000)); // 输出:Yesterday at 11:00 pm 这类格式
如果需要输出中文格式,提前设置moment的语言为中文即可:
moment.locale('zh-cn'); // 调用formatMsgTime方法后会输出对应中文:10分钟前、今天16:00、昨天23:00等
最终实现效果参考:
内容的提问来源于stack exchange,提问作者Wani
相关产品推荐
相关产品推荐

