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

如何禁用DatePicker当前日期及未来31天,31天后允许选择?

解决方案

要实现禁用当前日期及未来31天的日期选择,你可以直接通过日期范围判断替代原有的特定日期数组匹配逻辑,修改后的代码如下:

function DisableDates(date) {
    // 获取当前日期并重置时分秒为0,避免时间部分干扰判断
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    // 计算当前日期往后推31天的日期
    var futureDate = new Date(today);
    futureDate.setDate(today.getDate() + 31);

    // 若日期在[今天, 未来31天]范围内则禁用,否则允许选择
    return [date < today || date > futureDate];
}

$(function() {
     $("#date").datepicker({
         beforeShowDay: DisableDates
     });
});

代码说明:

  • 重置当前日期的时分秒为0,确保和datepicker返回的日期对象(默认时分秒为0)在同一基准上比较,避免因时间差导致判断错误。
  • 使用setDate()方法快速计算出未来31天的日期,无需手动拼接日期字符串。
  • 判断逻辑直接通过日期对象的大小比较实现:不在禁用范围内的日期返回[true](允许选择),在范围内的返回[false](禁止选择)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:40:56