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

使用MomentJS判断日历选中日期区间是否超过7天的实现方案

日期区间判断实现修正

原代码问题

  • moment(fromDate, toDate)用法错误,moment构造函数第二个参数为日期解析格式,不能传入结束日期,无法直接计算两个日期间隔
  • 直接格式化字符串后做大小比较的逻辑不符合「判断区间是否超过7天」的需求

正确实现逻辑

通过moment提供的diff方法计算两个日期的天数差,根据差值判断是否需要禁用按钮,同时要先判断起止日期都已选择,避免空值报错。

修正后代码

{
  // 起止日期都存在且间隔≥7天时禁用按钮
  fromDate && toDate && moment(toDate).diff(moment(fromDate), 'days') >= 7 ? (
    <li className="nav-item disabled">
      <a className="nav-link disabled">Hourly</a>
    </li>
  ) : (
    <li className="nav-item">
      <a
        className={`nav-link${
          selectedOption === "hourly" ? " active" : ""
        }`}
        onClick={() => updatedSwitchData("hourly")}
      >
        Hourly
      </a>
    </li>
  )
}

补充说明

  • 如果需求是包含首尾日期的7天区间,把判断条件调整为> 6即可
  • 计算时如果需要忽略时间部分只看日期差值,可以在调用diff前先对两个日期调用startOf('day')方法,避免同一天不同时间导致的差值计算误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:06:04