React-Moment- парсинг ISO 8601, оставшийся в читаемом формате - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь взять поле 'timeLeft из API eBay и превратить его во что-то, что выглядит нормально, например, 3 часа, 10 минут и 5 секунд до конца.

Данные выглядят примерно так: P3DT6H28M15S

Я пытаюсь использовать модуль React Moment, но не могу понять, как именно это сделать.

Это мой последний тест:

 <Moment format="h:mm:ss">
                {card.sellingStatus && card.sellingStatus[0].timeLeft}
              </Moment>

Но это возвращает «недопустимую дату».

Я также пробую следующий код, чтобы посмотреть, как выглядит вывод HTML, но я пробую другое поле вывода

<Moment>{card.listingInfo && card.listingInfo[0].endTime}</Moment>

обратите внимание, что endTime выглядит следующим образом

2019-11-09T19:45:32.000Z

, но приведенный выше кодгенерирует одинаковое точное значение для каждого элемента

Tue Jan 01 2019 00:00:00 GMT-0500

, хотя все поля endTime различны

Любые идеи относительно того, что я могу сделать неправильно здесь

1 Ответ

0 голосов
/ 11 октября 2019

Таким образом, я в основном выполнил то, что мне было нужно, используя модуль response-timeago npm.

 <TimeAgo
                date={new Date(
                  card.listingInfo && card.listingInfo[0].startTime
                ).toLocaleDateString()}
              />
...