时刻unix时间戳格式错误的日期

时间:2018-05-08 09:54:47

标签: javascript momentjs

我想将Unix毫秒时间戳转换为可读日期。

我的时间戳是1525772511140。 正确的输出应该是这样的: 29-05-2018 9:41:51 AM

现在我的代码返回错误的日期:31-10-50319 03:10 ...

代码:

var timeStamp = new Date(1525772511140 * 1000);
var date = moment(timeStamp).format('DD-MM-YYYY HH:mm');
console.log(date);

5 个答案:

答案 0 :(得分:2)

您只需使用moment(Number)

即可
  

new Date(Number)类似,您可以通过传递一个整数值来创建片刻,该值表示自Unix Epoch(1970年1月1日12 AM UTC)以来毫秒的数量

var date = moment(1525772511140).format('DD-MM-YYYY HH:mm');
console.log(date);
// with seconds and AM/PM
date = moment(1525772511140).format('DD-MM-YYYY hh:mm:ss A');
console.log(date);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

原生JavaScript解决方案(不含moment.js):

var d = new Date(1525772511140);
console.log(
  ("0" + d.getDate()).slice(-2) + '-' +
  ("0" + (d.getMonth()+1)).slice(-2) + '-' + 
  d.getFullYear() + ' ' +
  d.getHours() + ':' +
  d.getMinutes()
);

答案 1 :(得分:1)

只需从您的对帐单中移除*1000即可:

var timeStamp = new Date(1525772511140);
var date = moment(timeStamp).format('DD-MM-YYYY HH:mm');
console.log(date);
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>

时间戳已经是毫秒,所以不需要乘以1000。

答案 2 :(得分:1)

答案都没有给出正确的输出。

有问题预期产出 29-05-2018 9:41:51 AM moment().format('DD-MM-YYYY HH:mm:ss A')

根据问题,下面是正确答案:

&#13;
&#13;
let date = moment(1525772511140).format('DD-MM-YYYY HH:mm:ss A');
console.log(date);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.js"></script>
&#13;
&#13;
&#13;

有关时刻格式的详细信息,请查看以下链接:https://momentjs.com/docs/#/parsing/special-formats/

答案 3 :(得分:0)

尝试

const date = moment(new Date(1525772511140)).toDate();

const date = moment(new Date(1525772511140)).format('DD-MM-YYYY HH:mm')

答案 4 :(得分:0)

试试这个

moment.unix(1525772511140 / 1000).format('DD-MM-YYYY HH:mm')