Javascript 如何从非标准日期字符串中解析出日期
对于日历应用程序,我有一个从moment.js以这种字符串格式返回的日期 2017年6月16日星期五00:00:00 GMT-0500(中央夏令时) 如何将此字符串解析回'2017-06-16',使用力矩回溯指定这是无效输入。将其用作new Date()的实例会返回错误的日期Javascript 如何从非标准日期字符串中解析出日期,javascript,date,momentjs,Javascript,Date,Momentjs,对于日历应用程序,我有一个从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 = ch
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
。
只需使用本机构造函数
const date=新日期('2017年6月16日星期五00:00:00 GMT-0500(中央夏令时)');
const day=date.getDate();
const month=date.getMonth()+1;
const year=date.getFullYear();
控制台日志(日、月、年)
您不需要moment.js
。
只需使用本机构造函数
const date=新日期('2017年6月16日星期五00:00:00 GMT-0500(中央夏令时)');
const day=date.getDate();
const month=date.getMonth()+1;
const year=date.getFullYear();
控制台日志(日、月、年)代码>与日期转储相反,对象显示属性
_isValid: false
检查小提琴和控制台日志
与日期转储相反,对象显示属性
_isValid: false
检查小提琴和控制台日志
如果你真的想要moment.js
。。。
var检查=时刻(新日期('2017年6月16日星期五00:00:00 GMT-0500(中央夏令时));
var month=check.format('M');
var day=检查格式('D');
var year=check.format('YYYY');
控制台日志(月、日、年)代码>
如果你真的想要矩.js
。。。
var检查=时刻(新日期('2017年6月16日星期五00:00:00 GMT-0500(中央夏令时));
var month=check.format('M');
var day=检查格式('D');
var year=check.format('YYYY');
控制台日志(月、日、年)代码>
完全同意Jordan Running的评论
该控制台输出不显示字符串。它显示一个名为date的对象属性,其值为矩对象
由于您已经有了一个力矩对象(您的date
var),您可以简单地使用以您喜欢的格式显示力矩值
在您的情况下,您可以:
date.format('YYYY-MM-DD');
这里有一个活样本:
var日期=时刻([2017,5,16]);
console.log(日期);//打印力矩对象(如问题中提供的)
console.log(日期格式('YYYY-MM-DD');//打印格式的字符串输出(以所需格式)
完全同意Jordan Running的评论
该控制台输出不显示字符串。它显示一个名为date的对象属性,其值为矩对象
由于您已经有了一个力矩对象(您的date
var),您可以简单地使用以您喜欢的格式显示力矩值
在您的情况下,您可以:
date.format('YYYY-MM-DD');
这里有一个活样本:
var日期=时刻([2017,5,16]);
console.log(日期);//打印力矩对象(如问题中提供的)
console.log(日期格式('YYYY-MM-DD');//打印格式的字符串输出(以所需格式)
检查moment.js:控制台输出不显示字符串。它显示名为date
的对象属性,其值为矩对象。看起来\u d
属性是一个日期对象(显示为“Fri Jun…”,因此您可以读取它以进行调试)。如果它是一个字符串,它将以引号括起来显示。@Jordan完全同意您的看法,OP正在记录一个力矩对象<代码>\u d
是供内部使用的私有财产,不应使用。矩具有显示矩对象的字符串值的方法。请检查Moment.js:控制台输出不显示字符串。它显示名为date
的对象属性,其值为矩对象。看起来\u d
属性是一个日期对象(显示为“Fri Jun…”,因此您可以读取它以进行调试)。如果它是一个字符串,它将以引号括起来显示。@Jordan完全同意您的看法,OP正在记录一个力矩对象<代码>\u d
是供内部使用的私有财产,不应使用。矩有一种显示矩对象字符串值的方法。“如果需要转换现有的矩.js日期…”嗯?当您可以使用Moment的内置方法时,为什么要访问“私有”属性(\u i
)呢?“如果您需要转换现有的Moment.js日期…”嗯?当您可以使用Moment的内置方法时,为什么要访问“私有”属性(\u i
)?