You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让dayjs的.fromNow()仅显示天数而非月/年等模糊时间

解决方案

要实现精确显示已过去的天数,不用fromNow()的模糊单位,直接用dayjs的diff方法计算两个日期的天数差即可,具体代码分两种情况:

情况1:value是最后操作的时间戳/可解析日期格式

如果你的value是最后一次操作的具体时间(比如时间戳或者YYYY-MM-DD这类格式),直接计算当前时间与该时间的天数差:

Cell: ({ value }) => {
    if (!value) return null;
    // 指定单位为'day',获取精准天数差
    const days = dayjs().diff(dayjs(value), 'day');
    return `${days}天`;
}

情况2:沿用你原代码的now - value逻辑

如果你的value是当前时间到最后操作时间的毫秒差(即now - value得到过去的时间点),可以这样调整:

Cell: ({ value }) => {
    if (!value) return null;
    const pastTime = dayjs(new Date(now - value));
    const days = dayjs().diff(pastTime, 'day');
    return `${days}天`;
}

补充说明

  • diff方法会自动处理时区、闰年、不同月份天数差异等细节,比手动用毫秒数换算更可靠。
  • fromNow()的核心逻辑是根据时间跨度自动选择模糊单位(比如超过30天显示“1个月”),天然不符合精准天数的需求,因此直接弃用即可。

内容的提问来源于stack exchange,提问作者ad_home

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 01:21:03