如何使用 mysql 提供的日期获取“时间之前”?

Mr.*_*ony 11 javascript mysql datetime reactjs date-fns

我搜索了一些流行的时间解析和格式化库的文档,例如Day.jsdate-fns,但我并没有真正理解。

我的Node.js后端查询数据库中创建记录的日期时间MySQL并将其发送到前端(我使用React)。在前端,我想找到数据库中的日期(看起来像这样2020-12-04T15:39:40.000Z并且已经从 json 解析为 javscript 对象)和当前日期时间之间的时间差。
例如,社交媒体网站有“2 天前发布的帖子”之类的内容。
我见过不使用库而只使用普通 JavaScript 的解决方案,但它们似乎很长,而且我并没有真正理解它们。我想使用一个可以简化此操作的库。您认为最好的方法是什么?

Fel*_*els 22

date-fns 有一个内置的本地化函数来输出如下字符串:

https://date-fns.org/v2.16.1/docs/formatDistance

所以你可以使用:

formatDistance(
    new Date('2020-12-04T15:39:40.000Z'),
    new Date(),
   { addSuffix: true }
) 
Run Code Online (Sandbox Code Playgroud)


小智 -1

您可以使用Moment.js库的diff方法。你的代码可能是这样的:

diffDays = currentDate.diff(databaseDate, "days");
diffString = `posted ${diffDays} days ago`;
Run Code Online (Sandbox Code Playgroud)

  • 由于 `moment.js` 不再维护,最好使用 date-fns lib (https://date-fns.org/) (3认同)