React:将mongoDB日期转换为人类可读的日期



存储在MongoDB中的文档有"createdAt"属性,该属性包含时间戳。这里我们有一个时间戳的例子:

createdAt: 2021-10-26T12:24:33.433+00:00

考虑到这个日期是今天,我如何复制以下行为?:

  • 显示日期为"今天12:24 pm">
  • 明天,将此日期显示为"Yesterday at 12:24 pm";
  • 从后天起,显示为"26/10/2021 at 12:24 pm";

我尝试使用JavaScript的日期实例来比较两个字符串,但我遇到了一些麻烦,试图正确转换字符串。我想知道是否有任何库可以简化这个过程或一些传统的方法。

既然您提到使用React,我假设您在某个地方运行了一个Node。也许是create-react-app后端?我也将假设ESM。

你可以用date-fns;参见https://date-fns.org/v2.25.0/docs/formatDistance

文档$ npm i date-fns首先,安装依赖,然后像下面这样测试:

import formatDistance from 'date-fns/formatDistance'
function TestComponent() {
const dateStr = "2021-10-26T12:24:33.433+00:00";
const str = formatDistance(
new Date(dateStr),
new Date()
);
return <h1>{str}</h1>
}