You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何按时间禁用HTML input date类型的当前日期?

实现Input Date控件当日12点后禁用当前日期

我明白你要实现的需求:在当日12:00:00之后,禁止用户选择当前日期。你现有的代码只处理了日期维度的限制,没加入时间判断逻辑,这就导致不管几点都只能选当天及之前的日期。下面是调整后的代码:

$(function() {
    var dtToday = new Date();
    // 获取当前小时数,用来判断是否过了12点
    var currentHour = dtToday.getHours();
    
    // 初始化日期相关变量
    var month = dtToday.getMonth() + 1;
    var day = dtToday.getDate();
    var year = dtToday.getFullYear();

    // 如果当前时间已经过了12点,把日期往前推一天
    if (currentHour >= 12) {
        dtToday.setDate(dtToday.getDate() - 1);
        // 更新推后的日期对应的月、日、年
        month = dtToday.getMonth() + 1;
        day = dtToday.getDate();
        year = dtToday.getFullYear();
    }

    // 格式化月份和日期为两位数字(符合input date的格式要求)
    if (month < 10) month = '0' + month.toString();
    if (day < 10) day = '0' + day.toString();

    var maxDate = year + '-' + month + '-' + day;
    // 将限制日期赋值给你的date输入控件
    $('input[type="date"]').attr('max', maxDate);
});

关键逻辑说明:

  • 通过getHours()获取当前小时,判断是否已经过了12点
  • 若过了12点,就把当前日期对象的日期减1,这样最终的maxDate会是前一天,从而禁用当前日期的选择
  • 保持了你原来的日期格式化逻辑,确保生成的日期符合YYYY-MM-DD的标准格式,能被input date控件识别

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

火山引擎 最新活动