moment.js не может преобразовать фактический месяц в другой формат

Прямо сейчас я использую datetimepicker для bootstrap 4

Пока все в порядке. Я использую формат LLLL для отображения даты следующим образом "moment().format('LLLL'); // Thursday, May 17, 2018 11:57 AM"

Это тоже работает.
Теперь для сохранения данных в базе данных MySQL я хочу преобразовать их в формат ГГГГ-ММ-ДД ЧЧ:мм:сс.

Забавно, что обычно это работает хорошо, но как только я получаю дату фактического месяца, он больше не работает.
Вот вывод моей функции:

a = Donnerstag, 4. Mai 2017 09:00
Zeit Datenbank ist adb: Invalid date
b = Donnerstag, 13. April 2017 09:00
Zeit Datenbank ist bdb: 2017-04-13 09:00:00

У меня есть два средства выбора даты и времени (a и b). Любая идея, почему преобразование мая не работает?

Изменить: январь не работает
март не работает
май не работает
декабрь не работает

Все остальные месяцы работают!

Код, который я использую:

var a=document.getElementById("datetimepicker_start").value;
(to read: a = Donnerstag, 7. Februar 2019 12:53)
var adb = moment(a).format("YYYY-MM-DD HH:mm:ss");
(to convert: Zeit Datenbank ist adb: 2019-02-07 12:53:00)

person 0xSilent    schedule 17.05.2018    source источник


Ответы (1)


Тебе следует:

  • Укажите формат даты, которую вы читаете
  • Включить необходимую локаль

Использование moment без дополнительных аргументов будет анализировать даты на основе ограниченного числа форматов, но вы можете точно указать, как анализировать данные даты, передав дополнительный аргумент.

Если вы читаете по-немецки, вы можете указать немецкую локаль отсюда https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/locale/de.js.

e.g.

var a = 'Donnerstag, 4. Mai 2017 09:00'
var adb = moment(a, 'LLLL').format("YYYY-MM-DD HH:mm:ss");
console.log(adb);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/locale/de.js"></script>

Чтобы быть полностью явным, вы также можете указать локаль при чтении даты:

moment(a, 'LLLL', 'de');
person Rajit    schedule 17.05.2018
comment
Большое спасибо! Я был совершенно уверен, что тоже пробовал это без везения, но, возможно, у меня были какие-то другие проблемы, когда я пробовал это... СПАСИБО! Работает отлично! - person 0xSilent; 17.05.2018