当我获得2017-05-05T00:00:00
或May 15, 2017
等值时,这会有效,但在传递new Date();
之类的内容时总会失败。如何让它也接受javascript日期对象?
moment.utc(dt, [moment.ISO_8601, 'MMMMDDY h:mm:ss A']).add(1, 'second');
编辑---
要明确的是,当invalid date
dt = new Date();
而失败
答案 0 :(得分:1)
您的方法失败,因为当您将第二个String数组作为参数传递时,momentjs的utc()函数期望第一个参数是日期string
而不是Date
对象。以下是Moment Docs允许的方法签名 -
moment.utc();
moment.utc(Number);
moment.utc(Number[]);
moment.utc(String);
moment.utc(String, String);
moment.utc(String, String[]);
moment.utc(String, String, String);
moment.utc(Moment);
moment.utc(Date);
以下是您的查询的工作原型 -
var current = new Date();
var testDate = moment.utc(current).add(1,'s').format("MMMM Do YYYY, h:mm:ss");
console.log(testDate);

<script src="https://momentjs.com/downloads/moment.min.js"></script>
&#13;