使用 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 已被贬低,建议使用 Luxon
或 date-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的主要内容,如果未能解决你的问题,请参考以下文章