我正在准备一张表格,显示距离上次触摸某物已经过去了多长时间。我只显示已经过去了多少天,而不是让单元格减少到不太准确的数字,例如几个月,以便更快地进行比较。例如,如果某件事已经 45 天没有动过,现在 JS 正在将其减少到 1 个月,而我希望它显示 45 天
现在,我正在使用它来显示过去的时间,并且我已经看到了更改时间表示方式的解决方案,但只是如何更改输出,而不是减少几个月到几天
Cell: ({ value }) => {
return value ? dayjs(new Date(now - value)).fromNow() : null;
}
非常感谢任何帮助!
fromNow
函数为您提供相对时间,因此45
天变成一个月(因为它接近一个月)。您可以使用 diff
以 “X 天前” 的格式返回结果。
const now = dayjs();
const Cell = ({ value }) => {
if (value) {
const lastTouched = dayjs(value);
const differenceInDays = now.diff(lastTouched, 'day');
return `${differenceInDays} days ago`;
}
return null;
};
<script type="module">
import dayjs from "https://esm.sh/[email protected]";
const now = dayjs();
const lastTouchedDate = dayjs().subtract(45, 'day'); // replace with actual
const daysSinceLastTouched = (value) => {
if (value) {
const lastTouched = dayjs(value);
const differenceInDays = now.diff(lastTouched, 'day');
return `${differenceInDays} days ago`;
}
return null;
};
const result = daysSinceLastTouched(lastTouchedDate);
console.log(result);
</script>
一个简单的解决方法是使用 .diff 函数,如下所示:
const date1 = dayjs() // now
const diffDays = date1.diff(date2, 'days') // difference in days
return ’${diffDays} days ago‘