使用 Moment.js 获取当前的 unixtimestamp

Posted

技术标签:

【中文标题】使用 Moment.js 获取当前的 unixtimestamp【英文标题】:Getting current unixtimestamp using Moment.js 【发布时间】:2014-10-19 09:18:02 【问题描述】:

我想使用 Moment.js 获取 Unix 时间戳。 我可以在 moment.js 中找到许多将时间戳转换为日期的函数。 我知道我可以使用以下 javascript 函数轻松获取 unix 时间戳:Math.floor(new Date().getTime()/1000)

但我想使用 Moment.js 来获得相同的结果。 在 moment.js 中有没有直接的函数来获取当前的时间戳?

【问题讨论】:

【参考方案1】:

以秒为单位查找 Unix 时间戳:

moment().unix()

documentation 是您的朋友。 :)

【讨论】:

@climbinghobo 如果你想在毫秒内使用moment().valueOf() 不再有效。请参阅下面的@kumar chandraketu 答案。 这将给出自纪元以来的时间,并且不会将当前时间转换为毫秒【参考方案2】:

对于找到此页面并寻找带毫秒的 unix 时间戳的任何人,the documentation says

moment().valueOf()

+moment();

可以也可以通过moment().format('x')(或.format('X') [capital X] 获取带有十进制毫秒的 unix 秒),但这会给你一个字符串.之后哪个 moment.js 实际上不会解析回来,除非您先将其转换/转换回数字。

注意:此答案继续获得 +1,这很好,但 Moment 已被贬低,建议使用 Luxondate-fns 等替代方案。见:https://momentjs.com/docs/#/-project-status

【讨论】:

非常好,但最后一个 (+moment()) 看起来很冒险! @JRichardsz 这似乎是一个不必要的解析步骤,因为我提到的前两个将为您提供正确的数字值。 正确。来自documentation:moment().valueOf();+moment(); @mix3d 我会试试的。谢谢!【参考方案3】:

UNIX 时间戳,以毫秒为单位

moment().format('x') // lowerCase x

用于 UNIX 时间戳,以秒为单位 moment().format('X') // capital X

【讨论】:

注意:这些会给你一个字符串的值,而不是数字对象。【参考方案4】:

试试这些

valof = moment().valueOf();            // xxxxxxxxxxxxx
getTime = moment().toDate().getTime(); // xxxxxxxxxxxxx
unixTime =  moment().unix();           // xxxxxxxxxx
formatTimex =  moment().format('x');   // xxxxxxxxxx
unixFormatX = moment().format('X');    // xxxxxxxxxx

【讨论】:

以上是关于使用 Moment.js 获取当前的 unixtimestamp的主要内容,如果未能解决你的问题,请参考以下文章

moment.js的方法及使用

moment.js、day.js怎么生成每周,每月

moment.js 是单例吗?

如何使用moment-timezone.js获取客户端时区

Moment.js 从日期获取日期名称

如何使用js获取某月的第一天和最后一天