moment.js не может конвертировать текущий месяц в другой формат - PullRequest
0 голосов
/ 17 мая 2018

Сейчас я использую указатель даты и времени для начальной загрузки 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). Любая идея, почему преобразование мая не работает?

Edit: Январь не работает
Март не работает
Может не работать
Декабрь не работает

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

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

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)

1 Ответ

0 голосов
/ 17 мая 2018

Вам необходимо:

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

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

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

, например

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');
...