var timeArr = moment().format('HH:mm').split(':');
var timeInMilliseconds = (timeArr[0] * 3600000) + (timeArr[1] * 60000);
这是我目前的解决方案。我宁愿用moment api计算今天的时间(今天凌晨12点以后的时间),以毫秒为单位。
我的代码以毫秒为单位返回今天的时间。我需要在几毫秒内调用另一个函数。我不能使用这个时代。我需要今天的时间在几毫秒内完成。
示例:
9:00am = 3.24e+7 milliseconds
9:00pm = 6.84e+7 milliseconds.
答案 0 :(得分:0)
您可以尝试以下操作:
var moment = require("moment");
// Compute the time in milliseconds assuming it's 1AM now
moment("1:00","HH:mm")-moment("00:00","HH:mm")
// 3600000
// Compute the time in milliseconds assuming it's 9AM now
moment("9:00","HH:mm")-moment("00:00","HH:mm")
// 32400000
// Compute the time in milliseconds assuming it's 9PM now
moment("21:00","HH:mm")-moment("00:00","HH:mm")
// 75600000
// For current time
moment()-moment("00:00","HH:mm")
答案 1 :(得分:0)
您可以使用以下功能:
moment()
- 这会为您提供当前时刻("现在")startOf('day')
- 这为您提供了当天的第一时刻diff
- 计算两个时刻之间的差异把它放在一起:
moment().diff(moment().startOf('day'))
默认单位是毫秒,因此您无需指定它们。
这将为您提供自一天开始以来经过的毫秒数。但是,请注意,有一些时区(例如巴西)DST春季前进过渡发生在午夜时分 - 在这些日子里,时钟从23:59:59到01:00:00,所以当天的第一时刻可能不是午夜!在这种情况下,上述函数返回的值可能会比您预期的时间减少一个小时。它确实是从一天开始以来的返回时间,而不是来自"午夜"。
为了弥补这种可能性,您可以执行以下操作:
moment().utcOffset(0, true).diff(moment().utcOffset(0, true).startOf('day'))
utcOffset(0, true)
将转换为UTC模式,同时保持本地时间不变。这比第一个例子更复杂,但完成工作因为UTC从未经历过DST转换。