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

JavaScript按日期范围移除类需求:需限定为2月1日至4月15日

修改JavaScript日期判断逻辑:精准匹配2月1日至4月15日

原来的代码只基于月份做判断,要缩小到2月1日至4月15日这个精确范围,我们需要直接操作Date对象来做日期区间比较,这样能覆盖所有边界情况(比如4月16日就不再触发淡季逻辑)。

修改后的完整代码

<script type="text/javascript">
jQuery(document).ready(function(){
    // 获取当前的完整日期对象
    const currentDate = new Date();
    // 构造区间起始日期:当年的2月1日(注意JS月份是0索引,2月对应1)
    const startOfOffSeason = new Date(currentDate.getFullYear(), 1, 1);
    // 构造区间结束日期:当年的4月15日(4月对应3)
    const endOfOffSeason = new Date(currentDate.getFullYear(), 3, 15);

    // 判断当前日期是否落在淡季区间内(包含首尾两天)
    if (currentDate >= startOfOffSeason && currentDate <= endOfOffSeason) {
        jQuery('.off-season-hours .mbhi-is-current').removeClass('mbhi-is-current');
    } else {
        jQuery('.on-season-hours .mbhi-is-current').removeClass('mbhi-is-current');
    }
});
</script>

关键修改点说明

  • 精确日期比较:直接用Date对象做>=、<=判断,内部会自动转换为时间戳(从1970年开始的毫秒数),比手动拆分年/月/日判断更简洁可靠。
  • 0-based月份处理:JavaScript里getMonth()返回0-11(0=1月,1=2月...),所以构造2月1日时要传1,4月15日传3。
  • 年份自适应:用currentDate.getFullYear()获取当前年份,避免跨年时出现逻辑错误(比如12月不会错误匹配下一年的2月)。

额外注意事项

如果你的网站面向跨时区用户,需要统一用UTC时间的话,可以把Date对象换成UTC方法,比如new Date(Date.UTC(currentDate.getFullYear(), 1, 1)),这样所有用户的判断基准都是UTC时间,不会因为本地时区差异出现偏差。

内容的提问来源于stack exchange,提问作者Anna H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:46:59