#javascript #node.js #date #momentjs
#javascript #node.js #Дата #momentjs
Вопрос:
Итак, моя проблема заключается в следующем: при добавлении 2 недель, вместо простого добавления недель, moment по какой-то причине также добавляет часы, как мне просто изменить дату, сохраняя при этом время неизменным?
var firstDate = "2020-11-02;00:00:00";
var secondDate = moment(firstDate, 'YYYY-MM-DD;hh:mm:ss').add('2', 'weeks');
console.log(secondDate.format('YYYY-MM-DD;hh:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
Вывод: 2020-11-16;12:00:00
Требуемый результат: 2020-11-16;00:00:00
Я знаю, что могу извлечь время из firstDate
, а затем изменить время secondDate
на это время, но мне интересно, есть ли более чистый способ, а также почему это вообще происходит.
Комментарии:
1. Ваш формат
hh
отображения имеет 12-часовой формат.00
С этим ничего не поделаешь, это вместо12 AM
этого. Если вы хотите00
, то вам следует использовать 24-часовой формат черезHH
— capitals .
Ответ №1:
Вам нужно использовать заглавные H
буквы (24-часовое время) вместо строчных h
(12-часовое время).
var firstDate = "2020-11-02;00:00:00";
var secondDate = moment(firstDate, 'YYYY-MM-DD;HH:mm:ss').add('2', 'weeks');
// output: 2020-11-16;12:00:00
console.log(secondDate.format('YYYY-MM-DD;HH:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>