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

将Moment代码迁移至Luxon时遇类型错误及结果不符问题

问题解决方案

1. 解决参数缺失报错(2554)

luxon.DateTime.fromISO() 是解析ISO格式时间字符串的方法,必须传入时间参数。要获取当前时间,应使用 luxon.DateTime.now()。

2. 解决类型不匹配错误(2365)

Luxon 的 diff() 方法返回 Duration 对象,无法直接与数字比较。需调用 as('hours') 方法将 Duration 转换为以小时为单位的数值,才能进行大小判断。

3. 修正逻辑以匹配预期输出

你的 Moment 代码逻辑是计算当前时间与Unix时间戳(毫秒)为1的时间点的小时差值,再判断是否≥48。而当前 Luxon 代码是计算当前时间减去1小时的差值,逻辑完全不符,导致输出false。

修正后的 Luxon 代码:

const lastActivityLoaded = 1;

console.log(
  `This keys luxon Method 2 :  `,
  luxon.DateTime.now().diff(luxon.DateTime.fromMillis(lastActivityLoaded), 'hours').as('hours') >= 48
); // 输出true

如果实际需求是判断当前时间距离某个时间点(比如1小时前)是否超过48小时,可再调整逻辑,但上述代码完全对齐你提供的 Moment 示例逻辑,会得到预期的true结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:01:12