moment.js以毫秒为单位获取当前时间?

时间:2016-10-11 15:16:50

标签: javascript momentjs

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

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

这个解决方案有效,测试它,但我只是使用时刻api而不是使用我自己的代码。

此代码以毫秒为单位返回TODAYS时间。我需要它在几毫秒内调用另一个函数...不能使用纪元。今天需要以毫秒为单位形成时间。上午9:00 = 3.24e + 7毫秒9:00 pm = 6.84e + 7毫秒。

7 个答案:

答案 0 :(得分:88)

来自文档: http://momentjs.com/docs/#/parsing/unix-timestamp-milliseconds/

这样:

  • moment(...).valueOf()
  • 解析预先存在的日期并将表示转换为unix时间戳

  • moment().valueOf()
  • 表示当前的unix时间戳

答案 1 :(得分:30)

请参阅此链接http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf()是您正在寻找的功能。

编辑我的答案(OP想要今天的毫秒,而不是纪元)

您需要milliseconds()功能,或者您可以选择moment().valueOf()

的路线

答案 2 :(得分:13)

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

根据format() documentation返回Unix毫秒时间戳。

答案 3 :(得分:3)

您可以从同一天的上午12点开始减去当前时间戳。

使用当前时间戳:

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

使用任意日期:

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

答案 4 :(得分:0)

要获取当前时间的毫秒数,请使用http://momentjs.com/docs/#/get-set/millisecond/

var timeInMilliseconds = moment().milliseconds();

答案 5 :(得分:0)

由于此线程是我发现的第一个Google线程,因此我发现的一种准确而懒惰的方法是:

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()即可,您可以轻松切换到milliseconds()或其他任何功能!

答案 6 :(得分:-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>