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

moment.unix() not giving correct value for timestamp

本文关键字:时间戳 unix moment      更新时间:2023-09-26

我有下面的时间戳1447862653771,我想格式化它。

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

我正在使用moment.js,它没有正确格式化日期。

moment.unix('1447862653771')将于12月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>

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

moment.unix(1447862653771 / 1000);

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

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

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

var m = moment(1447862653771);

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