Если вы посмотрите в консоль, вы увидите предупреждение от момента:
Предупреждение об устаревании: предоставленное значение не соответствует распознанному формату RFC2822 или ISO. момент конструирования возвращается к js Date (), который не надежен во всех браузерах и версиях. Форматы дат, отличные от RFC2822 / ISO, не рекомендуется и будут удалены в следующем основном выпуске. Пожалуйста, обратитесь к http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации.
Формат, который вы используете для вашей строки даты, не является форматом ISO и, вероятно, не поддерживается ни одним из «зависящих от реализации эвристических или специфических для реализации форматов дат» ¹, которые JavaScript двигатели могут использовать, чтобы угадать, что вы имели в виду.
Решение состоит в том, чтобы сообщить Моменту формат :
Обратите внимание, что это выводит 04
, а не 4
, как в ожидаемом выводе. Если вы хотите 4
вместо 04
, удалите одну из D
в вашей строке format
(например, .format(..., "D MMMM YYYY hh:mm:ss")
):
¹ https://tc39.es/ecma262/#sec-date.parse