Момент js не печатает секунды в отформатированной дате - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь преобразовать строку в заданный формат c, но не правильно печатает секунды. См. Пример ниже

const moment = require('moment')
const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'lll').format('YYYY-MM-DD hh:mm.ss')
console.log('convertedTime', convertedTime);
// output is
// date 2019-09-19 08:24.00
// why 44 (seconds) is not printing?
// expected output date 2019-09-19 08:24.44

Ответы [ 4 ]

1 голос
/ 28 февраля 2020

Я могу ошибаться, но я думаю, что «lll» (ваш второй аргумент) применяет форматирование, и я думаю, что разрешение указывается с точностью до минуты, что объясняет, почему ваши секунды равны «0». Попробуйте удалить «lll» и посмотрите, есть ли у вас лучшие результаты.

1 голос
/ 28 февраля 2020

у меня это работает.

const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'MMM D YYYY hh:mm:ss').format('YYYY-MM-DD hh:mm:ss')
console.log('convertedTime', convertedTime);
0 голосов
/ 02 марта 2020

Проблема с вашим форматированием. Добавьте ":" вместо "." в структуре формата. Также второй аргумент «lll» предназначен для форматирования локали, но вы можете удалить это тоже.

Также добавлен флаг «A» для форматирования AM / PM

Проверьте эту песочницу: https://codesandbox.io/s/priceless-rosalind-xl212

const moment = require("moment");
const convertedTime = moment("Sep 19, 2019 8:24:44 AM").format(
  "YYYY-MM-DD hh:mm:ss A"
);
console.log("convertedTime", convertedTime);

0 голосов
/ 28 февраля 2020

Я считаю, что ваш формат отключен,

Попробуйте:

const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'lll').format('YYYY-MM-DD hh:mm:ss')

Это должно сработать!

Для справки, это сказано прямо на главной странице из https://momentjs.com/

...