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

浏览器localStorage计数不增长?日期预订功能成本计算异常

问题核心原因

  • 计数重置逻辑放在了for循环内部,每次遍历单日都会把dayscost0的值重置为0,导致之前的累加结果被清空,无法正确统计符合条件的总天数。
  • 频繁读写localStorage没有必要,完全可以先在内存中完成计数,最后再一次性写入存储,性能和稳定性都更高。

修正后代码示例

// 循环开始前先初始化计数,不要放在循环内
let dayCost0Count = 0
const PRICE_RANGE_START = 1634648400000
const PRICE_RANGE_END = 1639746000000

for (let i = 0; i < daysDifference; i++) {
    const dayDot = startTime + (i * 86400000)
    // 判断是否落在指定价格区间
    if (dayDot >= PRICE_RANGE_START && dayDot <= PRICE_RANGE_END) {
        dayCost0Count++
        console.log('dayscost0 命中,当前计数:', dayCost0Count)
    }
}
// 计数完成后一次性写入localStorage
localStorage.setItem("dayscost0", dayCost0Count.toString())
// 后续计算总费用直接读取即可:const total = dayCost0Count * 单日单价

额外优化建议

  • 如果后续需要配置多个价格区间,可以把时间范围和对应单价抽成数组配置,无需逐个硬写判断逻辑,可维护性更强。
  • 计算日期间隔时建议额外校验时区问题,避免跨时区场景下日期计算偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:06:02