You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:27:02