我想将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);
答案 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')
根据问题,下面是正确答案:
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;
有关时刻格式的详细信息,请查看以下链接: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')