moment.unix()没有给出时间戳的正确值

时间:2015-11-18 16:25:58

标签: javascript momentjs

我有以下时间戳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')));
&#13;
<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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

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

moment.unix(1447862653771 / 1000);

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

此外,无需将时间戳作为字符串传递。

答案 1 :(得分:1)

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

var m = moment(1447862653771);

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