首页 > 解决方案 > React-Moment- 将 ISO 8601 剩余时间解析为可读格式

问题描述

我正在尝试从 eBay API 中获取 'timeLeft 字段,并将其变成看起来很正常的东西,例如还剩 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 字段都不同

关于我在这里可能做错了什么的任何想法?

标签: reactjsmomentjsebay-api

解决方案


所以我主要通过使用 react-timeago npm 模块完成了我需要的工作。

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

推荐阅读