#javascript #momentjs
#javascript #momentjs
Вопрос:
Я хочу преобразовать строку в момент, а затем добавить 5 часов и вывести результат в новую переменную
https://momentjs.com/docs/#/manipulating/add / — Посмотрел здесь, и из того, что у меня есть ниже, я ожидал бы, что это сработает, но журнал консоли показывает null. Кто-нибудь может определить, где я ошибаюсь? Спасибо
var input = "2020-08-06 15:15:00"
var manDate = moment(input, "YYYY MM DD hh mm ss")
var b = manDate.add(5, 'hours');
console.log(b)
***редактировать
Ожидаемый результат должен быть 2020-08-06 20:15:00
Ответ №1:
Вам нужно правильно отформатировать его на moment(input,format)
var input = "2020-08-06 15:15:00"
var manDate = moment(input, "YYYY-MM-DD HH:mm:ss")
var b = manDate.add(5, 'hour');
console.log(b.format('YYYY-MM-DD HH:mm:ss'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>
Ответ №2:
Ваш формат ввода не соответствует вашей входной строке. В противном случае manDate
является недопустимой датой при создании.
var input = "2020-08-06 15:15:00"
Ваш формат ввода должен соответствовать этому, поэтому было бы:
var manDate = moment(input, "YYYY-MM-DD HH:mm:ss")
Комментарии:
1. hh означает формат 12 утра / вечера, поэтому в данном случае это не сработало бы.
2. @Carlos1232 отредактирован для соответствия, но использование hh, похоже, не повлияло на это, когда я запускал его в своем браузере. Добавленные значения по-прежнему были правильными и отображались так, как если бы это был 24-часовой формат.
3. Вы правы, это была моя ошибка, но вы не узнаете, сколько сейчас правильного времени, если не отформатируете его в «ГГГГ-ММ-ДД чч: мм: сс а»
Ответ №3:
Вторым аргументом функции moment является формат. Оно должно соответствовать строковым символам даты и любым другим используемым (например: «/», «-«, «:»). Вы должны использовать YYYY-MM-DD hh:mm:ss
ИЛИ оставить его пустым, поскольку этот формат используется по умолчанию. Для вывода переменной moment в строку используйте метод format с желаемым форматом вывода в качестве первого аргумента.
var input = "2020-08-06 15:15:00"
var manDate = moment(input);
var b = manDate.add(5, 'hours');
console.log(b.format('YYYY-MM-DD hh:mm:ss'));