关于javascript:Moment.js,将日期字符串转换为日期

Moment.js to convert date string into date

跟着我以前的文章:Javascript Safari:键入字符串时,新的Date()返回无效日期
我正在使用Moment.js根据用户在文本框中的输入将日期字符串转换为日期字段。 这是为了防止我在Safari和Firefox的链接文章中描述的问题(Chrome正常时无法呈现日期)。
这是代码窃听器:

1
2
var tempDate = moment(userInputFieldDate).format('DD-MM-YYYY');
alert(tempDate);

在Chrome中,它确实可以正常工作(它也可以与Javascript Date对象一起使用),但是给了我moment.js弃用警告

Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.
Arguments: [object Object]
Error

在Firefox和Safari上,仅在警报窗口中提供未定义的日期。 所以不能完全确定我应该怎么做才能将日期字符串转换为Date对象。 有什么建议么 ?


如果要获取基于JS的日期String,请首先使用new Date(String)构造函数,然后将Date对象传递给moment方法。 喜欢:

1
2
3
4
var dateString = 'Thu Jul 15 2016 19:31:44 GMT+0200 (CEST)';
var dateObj = new Date(dateString);
var momentObj = moment(dateObj);
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15

如果dateString15-07-2016,则应使用moment(date:String, format:String)方法

1
2
3
var dateString = '07-15-2016';
var momentObj = moment(dateString, 'MM-DD-YYYY');
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15


如果您有日期字符串,则应尝试此操作。

1
2
3
4
5
6
7
const FORMAT ="YYYY ddd MMM DD HH:mm";

const theDate = moment("2019 Tue Apr 09 13:30", FORMAT);
// Tue Apr 09 2019 13:30:00 GMT+0300

const theDate1 = moment("2019 Tue Apr 09 13:30", FORMAT).format('LL')
// April 9, 2019

或者试试这个:

1
const theDate1 = moment("2019 Tue Apr 09 13:30").format(FORMAT);