Date-fns 格式距离不正确的话

Date-fns format distance is not in correct words

我遇到了 UI 的问题,想将时间戳距离显示为 3 hours ago4 hours ago 等。来自服务器的时间戳带有 属性 名为 createdAt,具有以下值。

createdAt: "2021-10-27T05:24:37.642Z"

为了解决这个问题,我正在使用像 date-fns v2.25.0 builtin function formatDistance.

这样的库
import { formatDistance} from 'date-fns';

const timestamp = createdAt ? new Date(createdAt) : '';
console.log(formatDistance(Date.now(), timestamp, {addSuffix: true}));
    

但它是在后面的话中回馈距离

in about 3 hours
in about 4 hours

而不是

3 hours ago
4 hours ago

我做错了什么?如果您知道任何其他好的图书馆,请您分享。

你可以使用任何其他流行的包,比如 moment,我相信它有更多的自定义配置,但是如果你想使用这个包,而不是必须改变 formatDistance 函数, 更改结果字符串会更容易:

import { formatDistance } from "date-fns";

const createdAt = "2020-08-27T08:24:37.642Z";
const timestamp = createdAt ? new Date(createdAt) : "";
const distance = formatDistance(Date.now(), timestamp, {addSuffix: true });

console.log(distance.substring(distance.indexOf(distance.match(/\d+/g))));

// => 2 hours ago

颠倒论点:

console.log(formatDistance(timestamp, Date.now(), {addSuffix: true}));