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

使用Luxon获取自动格式化相对日期时numeric:auto配置未生效如何解决

解决方法

你需要在toRelative的配置中新增unit: 'days'参数,指定以天为单位计算相对时间,配合numeric: 'auto'即可实现预期效果:

const {DateTime} = require('luxon');

console.log(DateTime.fromMillis(Date.now() - 10090909).toRelative({
    numeric: 'auto',
    unit: 'days'
})); 
// 输出为 today

原配置不生效的原因

未指定计算单位时,Luxon会根据时间差自动选择粒度更小的单位(如小时、分钟),但numeric: 'auto'仅在对应单位的差值为0时才会返回语义化表述,以天为单位计算时,小于24小时的差值会被判定为0天,即可输出today。

如果你的需求是严格按自然日判断“同日”(比如昨天23点和今天1点差2小时,但不属于同一天,不需要显示为today),可以增加自然日判断逻辑:

const targetDt = DateTime.fromMillis(Date.now() - 10090909);
const nowDt = DateTime.now();
const relativeText = targetDt.hasSame(nowDt, 'day') 
  ? 'today' 
  : targetDt.toRelative({ numeric: 'auto', unit: 'days' });
console.log(relativeText);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:54:02