@serNevajno

Как правильно производить манипуляции с датой?

Ранее использовал такой код:
var date = new Date("2019", "05", "31", "13", "45", "00");
date.setHours(date.getHours() + 3);

var date_time = date.getFullYear() + '-' + ('0' + (date.getMonth())).slice(-2) + '-' + ('0' + date.getDate()).slice(-2)+" "+('0' + (date.getHours())).slice(-2)+":"+('0' + (date.getMinutes())).slice(-2)+":"+('0' + (date.getSeconds())).slice(-2);

Получал дату в формате YYYY-MM-DD HH:mm:ss, но сегодня заметил что скрипт в место 31-го числа выдал первое июня, нашел здесь пост с похожей проблемой, там решением было использование библиотеки moment.js, что я и сделал.

var moment = require('moment');
var date = moment([2010, 1, 12, 15, 25, 50, 125]).add(3, 'hours');
console.log('DATE ' + moment(date).format("YYYY-MM-DD HH:mm:ss"));


Выдает: DATE 2010-02-12 18:25:50
Почему добавляется месяц и как выводить корректную дату?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Месяца в JS считаются с 0
(date.getMonth()) меняем на (date.getMonth() + 1)
и будет все ок
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы