【发布时间】:2017-09-04 20:57:10
【问题描述】:
我有以下代码
var value = 1504528441;
var utcDateTime = moment.utc(value, "YYYY-MM-DD HH:mm:ss")
我得到Invalid date。
我尝试在https://www.epochconverter.com/ 上转换此号码,它似乎转换得很好。
我不明白 moment 有什么问题。
【问题讨论】:
标签: momentjs
我有以下代码
var value = 1504528441;
var utcDateTime = moment.utc(value, "YYYY-MM-DD HH:mm:ss")
我得到Invalid date。
我尝试在https://www.epochconverter.com/ 上转换此号码,它似乎转换得很好。
我不明白 moment 有什么问题。
【问题讨论】:
标签: momentjs
您使用了错误的方法,并且在解析输入和显示时刻对象值之间感到困惑。
自 Unix 纪元(1970 年 1 月 1 日凌晨 12 点 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>
【讨论】: