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

如何使用JavaScript计算24小时周期内物品领取的剩余冷却时间

原有代码问题排查

  • 时间单位转换错误:Date.getTime() 返回值为毫秒,你除以60 * 60 * 24得到的是天数而非需求中的小时数,单位完全不匹配。
  • 无效取整逻辑:对毫秒级时间差直接执行Math.floor没有任何作用,后续基于天单位再次取整会直接丢失所有不满1天的时间精度。
  • 分钟计算逻辑错误:小时的小数部分直接乘60即可得到对应分钟数,额外除以100会导致分钟计算结果仅为实际值的60%,完全失准。

可行实现方案

基于24小时领取冷却的需求,直接从毫秒维度计算剩余冷却时间即可,逻辑简单且精度可控:

// 计算从上次领取到现在已经过的毫秒数
const passedMilliseconds = Date.now() - UserJSON[message.author.id].lastclaim;
// 固定24小时冷却,换算为毫秒
const COOLDOWN_TOTAL = 24 * 60 * 60 * 1000;
// 剩余冷却时间,小于等于0说明已可领取
const remainingMilliseconds = Math.max(0, COOLDOWN_TOTAL - passedMilliseconds);

// 转换为小时、分钟格式
const remainingHours = Math.floor(remainingMilliseconds / (1000 * 60 * 60));
const remainingMinutes = Math.floor((remainingMilliseconds % (1000 * 60 * 60)) / (1000 * 60));

// 输出结果,你需求的1分钟前刚领取场景下,此处输出为23 h 59 m
const result = `${remainingHours} h ${remainingMinutes} m`;

内容的提问来源于stack exchange,提问作者Jitesh Mogana Raja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:18:03