javascript - Moment JS fromNow 对 map 中的所有日期返回相同的值 'A Year Ago'

标签 javascript node.js momentjs

我正在使用 eBay api 并尝试将 dateTime 格式的 endTime 字段转换为显示拍卖剩余时间的字段,例如 5 分钟或 5 小时或 5 天。

在 Node 中,我正在调用 eBay api 并使用 moment 函数将 endTime 字段映射到变量中。

看起来像这样:

var moment = require("moment");
moment().format();

const cardsData = newData.map(card => ({
timeLeft: moment(
          card.listingInfo && card.listingInfo[0].endTime
        ).fromNow()

循环中的每个值都返回“一年前”。

这就是实际的 endTime 字段的样子

endTime: [
"2019-12-25T18:37:33.000Z"
],

我哪里出错了?在我可以使用 moment 之前,是否需要以某种方式格式化此日期?

最佳答案

事实证明,添加一个新的日期包装器可以使其正常工作。但我不太清楚为什么。如果有人有任何意见,将很高兴听到。谢谢

 timeLeft: moment(
          new Date(card.listingInfo && card.listingInfo[0].endTime)
        ).fromNow()

关于javascript - Moment JS fromNow 对 map 中的所有日期返回相同的值 'A Year Ago',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59043515/

相关文章:

javascript - 如何在 moment.js 中绕过冬季时间的转换

javascript - JsPlumb - 将自己的选择器功能添加到动态 anchor

javascript - Chrome URL 多个空格问题

javascript - Socket.io - 无法连接到客户端

node.js - 在 Heroku 上强制 Node.js 应用使用 HTTPS

javascript - 时刻时区 : varying (and wrong) results

javascript - JQuery 的动态表大小不起作用

javascript - 按两个数组中包含的值过滤 JSON 数组 (javascript)

javascript - 使用正文解析器传递 zip 文件

javascript - 在 Angular View 中使用 moment.js