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);