【问题标题】:moment.js get current time in milliseconds?moment.js 以毫秒为单位获取当前时间?
【发布时间】:2017-02-20 04:48:10
【问题描述】:
var timeArr = moment().format('HH:mm:ss').split(':');

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

这个解决方案有效,测试一下,但我宁愿只使用 moment api 而不是使用我自己的代码。

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

【问题讨论】:

  • var timeInMilliseconds = moment().valueOf();jsfiddle.net/rc1s2ek0
  • 这是从纪元开始......我需要今天的毫秒时间而不是纪元。
  • 你是对的,但你的问题表明你想要以毫秒为单位的时间......
  • 最简单的方法可能是得到 now 的纪元减去 今天开始 的纪元

标签: javascript momentjs


【解决方案1】:

查看此链接http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

valueOf() 是您要查找的函数。

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

你想要milliseconds() 函数或者你可以走moment().valueOf() 的路线

【讨论】:

  • 谢谢,但这不是我要问的,那是自纪元年以来...今天的当前时间,以毫秒为单位。
  • @code20 啊,明白了。看起来艾米在上面回答了它。您正在寻找 milliseconds() 函数,或者您可以创建一个空的时刻并使用 valueOf 函数。我在上面修改了我的答案。 momentjs 有非常好的文档,而且非常有条理。你可以用它做一些非常整洁的事情。如果有机会,你应该看看它!
  • 艾米斯的回答不正确。那是时间 0-999 毫秒,我已经阅读了大量的文档并进行了搜索。这个实在想不通。
  • @code20 您想要获取今天日期的毫秒数?我有点困惑。你不能使用毫秒纪元时间?
  • @code20 您确实需要更具体地说明您想要什么。到目前为止,您已经收到了自纪元以来 ms 的答案,或者“当前时间的 ms”,这就是您所要求的。自午夜以来的毫秒数完全不同。
【解决方案2】:

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

所以使用以下任何一种:


moment(...).valueOf()

解析预先存在的日期并将表示形式转换为 unix 时间戳


moment().valueOf()

对于当前的 unix 时间戳

【讨论】:

    【解决方案3】:
    var timeArr = moment().format('x');
    

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

    【讨论】:

    • 小心,它以毫秒为单位返回时间戳,但作为字符串,更喜欢返回数字的 moment().valueOf()
    【解决方案4】:

    您可以只获取各个时间分量并计算总数。您似乎期望 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>

    【讨论】:

      【解决方案5】:

      您可以从当天的 12 点减去当前时间戳。

      使用当前时间戳:

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

      使用任意日期:

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

      【讨论】:

        【解决方案6】:

        由于这个帖子是我从谷歌找到的第一个帖子,我找到的一个准确而懒惰的方法是:

        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() 或其他任何东西!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-25
          • 2017-04-25
          • 1970-01-01
          • 1970-01-01
          • 2015-09-22
          • 2011-08-25
          • 1970-01-01
          相关资源
          最近更新 更多