moment.js如何获取当前时间的毫秒数?

141
var timeArr = moment().format('HH:mm:ss').split(':');

var timeInMilliseconds = (timeArr[0] * 3600000) + (timeArr[1] * 60000);

这个解决方案可以运行,测试一下就好了,但我宁愿使用moment api而不是我的自己的代码。

这段代码以毫秒为单位返回今天的时间。 我需要以毫秒为单位调用另一个函数...无法使用纪元。 需要今天的时间格式化为毫秒。 早上9:00 = 3.24e +7毫秒 下午9:00 = 6.84e +7毫秒。


11
var timeInMilliseconds = moment().valueOf(); 这行代码会获取当前时间的时间戳(以毫秒为单位)。请参考 https://jsfiddle.net/rc1s2ek0/。 - IronAces
这是自纪元以来的时间...我需要今天的毫秒时间,而不是纪元时间。 - user7002036
你说得没错,但是你的问题中提到你想要以毫秒为单位的时间... - IronAces
2
最简单的方法可能是获取“现在”的时代减去“今天开始”的时代的差异。 - Geert-Jan
6个回答

216

47

1
谢谢,但那不是我在问的,那是自纪元年以来...今天当前的毫秒时间。 - user7002036
@code20 哦,明白了。看起来Amy已经回答了。你需要寻找milliseconds()函数或者创建一个空的moment并使用valueOf函数。我已经在上面修改了我的回答。momentjs有非常好的文档,并且它们很有组织。你可以用它做一些非常酷的事情。如果有机会,你应该仔细阅读一下! - Brandon
Amy的答案是不正确的。在0-999毫秒的时间范围内,我已经阅读了大量文档并进行了搜索。真的无法弄清楚这个问题。 - user7002036
1
@code20,你需要更具体地说明你想要什么。到目前为止,你已经收到了有关自纪元以来的毫秒数或“当前时间的毫秒数”的答案,这正是你所要求的。午夜后的毫秒数则完全不同。 - user47589
看起来原帖作者删除了他的用户账户。唉。 - user47589
显示剩余2条评论

29
var timeArr = moment().format('x');

按照 format() 文档 返回 Unix 毫秒时间戳。


9
注意,它返回毫秒级别的时间戳,但是作为字符串返回,请使用moment().valueOf(),它将返回一个数字。 - Julien
尝试使用 Number(moment().format('x')) - 丶 Limeー来夢 丶
@Lime 或者只需添加 + 简写。 +moment().format('x') - Neeraj

14

你可以用当天凌晨零点的时间戳减去当前时间戳。

使用当前时间戳:

moment().valueOf() - moment().startOf('day').valueOf()

使用任意日期:

moment(someDate).valueOf() - moment(someDate).startOf('day').valueOf()

1
您可以获取各个时间组件并计算总和。您似乎期望Moment已经将此功能整齐地打包好给您,但实际上它没有。我怀疑这并不是人们经常需要的功能。
示例:

var m = moment();

var ms = m.milliseconds() + 1000 * (m.seconds() + 60 * (m.minutes() + 60 * m.hours()));

console.log(ms);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


0

因为这个帖子是我在谷歌上找到的第一个,我发现一种准确而又省事的方法是:

const momentObject = moment().toObject();
// date doesn't exist with duration, but day does so use it instead
//   -1 because moment start from date 1, but a duration start from 0
const durationCompatibleObject = { ... momentObject, day: momentObject.date - 1 };
delete durationCompatibleObject.date;

const yourDuration = moment.duration(durationCompatibleObject);
// yourDuration.asMilliseconds()

现在只需添加一些原型(例如toDuration() / .asMilliseconds())到moment中,您就可以轻松地切换到milliseconds()或其他任何内容!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接