Мой кодЯ получаю неправильную дату после преобразования с помощью moment.js
console.log(moment(new Date('2016-05-24T18:50:05.000')).format('LL'));
Он должен быть 24 мая 2016, но это дает мне 25 мая 2016.
Может ли кто-нибудь мне помочь.
Мой кодЯ получаю неправильную дату после преобразования с помощью moment.js
console.log(moment(new Date('2016-05-24T18:50:05.000')).format('LL'));
Он должен быть 24 мая 2016, но это дает мне 25 мая 2016.
Может ли кто-нибудь мне помочь.
Необходимо указать дату как UTC.
Вы можете сделать это в любом из следующих способов:
console.log(moment(new Date('2016-05-24T18:50:05.000Z')).format('LL'));
Где, то Z указывает, что время UTC. Или:
console.log(moment.utc(new Date('2016-05-24T18:50:05.000')).format('LL'));
Вы можете передать строку даты ISO 8601 в момент непосредственно.
Нет необходимости обертывать строку в объект Date javascript. Тогда ваш код становится:
console.log(moment('2016-05-24T18:50:05.000Z').format('LL'));
Или:
console.log(moment.utc('2016-05-24T18:50:05.000').format('LL'));
console.log (moment.utc (new Date()). Format ('LL')); Он показывает вчера дату не сегодня почему? – user3152849
new Date() создает дату по местному времени, moment.utc() заставляет момент интерпретировать дату как UTC. format ('LL') отображает дату по местному времени. Используйте параметр moment.utc() вместо момента(), если вы хотите, чтобы время datetime передавалось как аргумент, интерпретируемый как utc. – user2961850
Почему вы вообще называете 'новая дата'? –
Может ли это быть проблема часовых поясов? Рассмотрим указание часовой пояс UTC. –
Только для этой даты это происходит, иначе я проверил, для других он отлично работает. вы можете проверить пример в plukr [link] (https://plnkr.co/edit/e8cIXxajUmE7ggVXueTG?p=preview) – user3152849
Moment предполагает, что время является местным, если вы не указали часовой пояс. Итак, если вы находитесь в Pacific Time или Mountain Time или Central Time, это означало бы 25 мая в UTC (помните, что UTC будет на 6 часов раньше вас). Попробуйте строку ''2016-05-24T18: 50: 05.000Z'', чтобы указать часовой пояс UTC. –