Date-fns 格式距离不正确的话
Date-fns format distance is not in correct words
我遇到了 UI 的问题,想将时间戳距离显示为 3 hours ago
和 4 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}));
我遇到了 UI 的问题,想将时间戳距离显示为 3 hours ago
和 4 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}));