【发布时间】:2017-06-06 14:44:00
【问题描述】:
我有一个从 moment.js 以这种字符串格式返回的日期,用于日历应用程序。
2017 年 6 月 16 日星期五 00:00:00 GMT-0500(中部夏令时间)
如何将此字符串解析回“2017-06-16”,使用时刻回溯指定这是一个无效输入。使用它作为 new Date() 的实例返回给我一个不正确的日期。
var check = moment('Fri Jun 16 2017 00:00:00 GMT-0500 (Central Daylight Time)', 'YYYY/MM/DD');
var month = check.format('M');
var day = check.format('D');
var year = check.format('YYYY');
console.log(month, day, year);
//-->invalid date
【问题讨论】:
-
检查moment.js:momentjs.com/guides/#/parsing
-
该控制台输出不显示字符串。它显示了一个名为
date的对象属性,其值为 Moment 对象。看起来_d属性是一个 Date 对象(呈现为“Fri Jun ...”,因此您可以阅读它,用于调试目的)。如果它是一个字符串,它将显示在引号中。 -
@JordanRunning 完全同意你的观点,OP 正在记录一个时刻对象。
_d是内部使用的私有财产,不应使用。 Moment 有format()方法来显示时刻对象的字符串值。
标签: javascript date momentjs