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

Moment.js获取时间戳及日期操作后获取时间戳的问题咨询

嘿,我来帮你搞定这两个Moment.js的问题~

问题1:如何使用Moment.js获取时间戳?

Moment.js提供了两种常用的获取时间戳的方法,根据你需要的精度选择就行:

  • 毫秒级时间戳:用valueOf()方法,返回从Unix纪元(1970-01-01 00:00:00 UTC)到目标时间的毫秒数
    // 当前时间的毫秒级时间戳
    const currentTimestampMs = moment().valueOf();
    
  • 秒级时间戳:用unix()方法,返回秒数(自动截断毫秒部分)
    // 当前时间的秒级时间戳
    const currentTimestampSec = moment().unix();
    
问题2:调整日期后如何获取时间戳?

你的代码执行失败的原因很明确:.calendar()方法返回的是人类友好的格式化日期字符串(比如"Last Monday at 2:30 PM"),而不是Moment对象,所以你调用.getTime()的时候,字符串根本没有这个方法,自然会报错。

正确的做法是:调整日期(比如subtract)之后,直接在Moment对象上调用valueOf()或unix()来获取时间戳,不需要经过.calendar()这一步。

示例代码:

// 获取10天前的毫秒级时间戳
const tenDaysAgoTimestampMs = moment().subtract(10, 'days').valueOf();

// 如果需要秒级时间戳,换成unix()
const tenDaysAgoTimestampSec = moment().subtract(10, 'days').unix();

如果你的需求是既要查看格式化后的日期,又要获取时间戳,可以把Moment对象先存起来,再分别操作:

const tenDaysAgo = moment().subtract(10, 'days');
// 查看格式化后的日历样式日期
console.log(tenDaysAgo.calendar());
// 获取时间戳
const timestamp = tenDaysAgo.valueOf();

内容的提问来源于stack exchange,提问作者qg_java_17137

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:06:12