Moment.js для преобразования даты в дату

После моего предыдущего сообщения: Javascript Safari: new Date() со строками возвращает недопустимую дату при вводе. Я использую Moment.js для преобразования строки даты в поле даты на основе ввода пользователя в текстовое поле. Это делается для предотвращения проблемы, описанной в связанной записи для Safari и Firefox, которые не могут отображать дату, когда Chrome в порядке. Вот код:

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

В Chrome он отлично работает (он также используется для работы с объектом Javascript Date), но дает мне предупреждение о моменте. Js

Предупреждение о устаревании: моментная конструкция возвращается к js Date. Это обескураживает и будет удалено в предстоящем крупном выпуске. Дополнительную информацию см. на странице https://github.com/moment/moment/issues/1407. Аргументы: [Object Object] Ошибка

В Firefox и Safari просто появляется НЕОПРЕДЕЛЕННАЯ ДАТА в окне предупреждения. Поэтому я не совсем уверен, что мне делать, чтобы преобразовать строку даты в объект Date. Какие-либо предложения?

Ответ 1

Если вы получаете на основе JS дату String, то первым использовать new Date(String) конструктор, а затем передать Date объект в moment метод. Подобно:

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

В случае, если dateString имеет значение 15-07-2016, тогда вы должны использовать метод moment(date:String, format:String)

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

Ответ 2

если у вас есть строка даты, то вы должны попробовать это.

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

или попробуйте это:

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