问题描述
我有以下代码
var value = 1504528441;
var utcDateTime = moment.utc(value, "YYYY-MM-DD HH:mm:ss")
,我得到Invalid date
.
我尝试在 https://www.epochconverter.com/上转换此数字,看来可以很好地进行转换.
I tried converting this number on https://www.epochconverter.com/ and it seems to be converting just fine.
我不明白这是什么问题.
I don't understand what is the problem with moment.
推荐答案
您使用了错误的方法,并且在解析输入和显示矩对象值之间感到困惑.
You are using the wrong method and confusing between parsing input and showing moment object value.
没有moment.utc(Number, String)
,并且 moment.utc(Number)
创建一个矩对象自Unix时代(1970年1月1日12 AM UTC)以来,将Number
输入参数视为毫秒.
There is no moment.utc(Number, String)
and moment.utc(Number)
creates a moment object treating Number
input parameter as milliseconds since the Unix Epoch (Jan 1 1970 12AM UTC).
自value
起,您必须使用 moment.unix(Number)
输入的时间是自Unix时代以来的秒数:
You have to use moment.unix(Number)
since your value
input is seconds since Unix epoch:
然后,您可以使用 format()
显示时刻的价值对象以您喜欢的格式(例如"YYYY-MM-DD HH:mm:ss"
).
Then you can use format()
to show the value of your moment object in the format you prefer (e.g. "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>
这篇关于即使日期正确,Moment仍返回无效数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!