使用 .fromNow() 仅显示过去的天数,而不是不太准确的术语(月、年等)

问题描述 投票:0回答:2

我正在准备一张表格,显示距离上次触摸某物已经过去了多长时间。我只显示已经过去了多少天,而不是让单元格减少到不太准确的数字,例如几个月,以便更快地进行比较。例如,如果某件事已经 45 天没有动过,现在 JS 正在将其减少到 1 个月,而我希望它显示 45 天

现在,我正在使用它来显示过去的时间,并且我已经看到了更改时间表示方式的解决方案,但只是如何更改输出,而不是减少几个月到几天

Cell: ({ value }) => {
    return value ? dayjs(new Date(now - value)).fromNow() : null;
}

非常感谢任何帮助!

javascript reactjs sorting date datetime
2个回答
0
投票

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>


0
投票

一个简单的解决方法是使用 .diff 函数,如下所示:

const date1 = dayjs() // now
const diffDays = date1.diff(date2, 'days') // difference in days
return ’${diffDays} days ago‘
© www.soinside.com 2019 - 2024. All rights reserved.