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

moment.unix() not giving correct value for timestamp

我有以下时间戳 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。保留小数点,因此不会损失精度,但它涉及两个无关的操作,并且会消耗一些额外的源代码字节。