我有以下代码
var value = 1504528441;
var utcDateTime = moment.utc(value, "YYYY-MM-DD HH:mm:ss")
我得到Invalid date
。
我尝试在https://www.epochconverter.com/上转换此号码,而且似乎转换得很好。
我不明白时刻有什么问题。
答案 0 :(得分:1)
您正在使用错误的方法并在解析输入和显示时刻对象值之间混淆。
自Unix Epoch(1970年1月1日12 AM UTC)以来,没有moment.utc(Number, String)
和moment.utc(Number)
创建一个将Number
输入参数视为毫秒的时刻对象。
你必须使用moment.unix(Number)
,因为你的value
输入是自Unix纪元以来的秒数:
要从Unix时间戳创建片刻(自Unix纪元以来秒),请使用
moment.unix(Number)
。
然后,您可以使用format()
以您喜欢的格式显示当前对象的值(例如"YYYY-MM-DD HH:mm:ss"
)。
这是一份工作样本:
var value = 1504528441;
var utcDateTime = moment.unix(value);
console.log( utcDateTime.format("YYYY-MM-DD HH:mm:ss") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>