【问题标题】:moment.unix() not giving correct value for timestampmoment.unix() 没有给出正确的时间戳值
【发布时间】:2015-11-18 16:25:57
【问题描述】:

我有以下时间戳1447862653771,我想对其进行格式化。

www.epochconverter.com 成功转换为GMT: Wed, 18 Nov 2015 16:04:13 GMT

我正在使用moment.js,但它的日期格式不正确。

moment.unix('1447862653771') 给出的是 Tue Dec 10 47850 09:29:31 GMT-0500(东部标准时间)

$("body").append($("<p>").text(moment.unix('1447862653771')));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/1.7.2/moment.min.js"></script>

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    1447862653771 以毫秒为单位,而不是秒。先除以 1000。注意年份是47850!

    moment.unix(1447862653771 / 1000);
    

    moment.unix((new Date()).getTime() / 1000);
    

    另外,不需要将时间戳作为字符串传递。

    【讨论】:

    • 你的意思是“毫秒”
    • 看来我会:p micro 会是 10^-6
    【解决方案2】:

    moment.unix 函数需要以整秒为单位的值。由于您的值包含毫秒,因此您应该将其传递给 moment 函数,如下所示:

    var m = moment(1447862653771);
    

    虽然按照其他答案的建议除以 1000 可能可行,但这并不理想,因为它依赖于 unix 函数然后在内部乘以 1000。保留小数,因此不会损失精度,但它涉及两个无关的操作,并且会消耗一些额外的源代码字节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多