如何在html5输入类型Date中限制过去的日期

时间:2017-04-07 09:30:07

标签: javascript html5

我正在尝试限制input type="date"中的过去日期。我可以限制将来的日期,但我不知道限制过去的日期。

$(function(){
    var dtToday = new Date();
    
    var month = dtToday.getMonth() + 1;
    var day = dtToday.getDate();
    var year = dtToday.getFullYear();
    if(month < 10)
        month = '0' + month.toString();
    if(day < 10)
        day = '0' + day.toString();
    
    var minDate= year + '-' + month + '-' + day;
    
    $('#txtDate').attr('min', minDate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" id="txtDate" />

有什么建议吗?

9 个答案:

答案 0 :(得分:6)

你可以试试这个

 var maxDate = year + '-' + month + '-' + day;
    alert(maxDate);
    $('#txtDate').attr('min', maxDate);

$(function(){
    var dtToday = new Date();
    
    var month = dtToday.getMonth() + 1;
    var day = dtToday.getDate();
    var year = dtToday.getFullYear();
    if(month < 10)
        month = '0' + month.toString();
    if(day < 10)
        day = '0' + day.toString();
    
    var maxDate = year + '-' + month + '-' + day;
    alert(maxDate);
    $('#txtDate').attr('min', maxDate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" id="txtDate" />

答案 1 :(得分:5)

希望下面的代码可以帮到你。这是正常的HTML5代码:

/*Enter a date before 1980-01-01:*/
<input type="date" name="bday" max="1979-12-31">

/*Enter a date after 2000-01-01:*/
<input type="date" name="bday" min="2000-01-02">
  

see working link

答案 2 :(得分:4)

我可以使用laravel 7

<input type="date" id="txtDate" min="<?php echo date("Y-m-d"); ?>"> 

完美运行

答案 3 :(得分:3)

通过编程,您可以执行以下操作以禁止选择过去的日期:

<input type='date' min={new Date().toISOString().split('T')[0]} />

答案 4 :(得分:2)

在HTML中:

<input type="date" id="ExpiryDate" class="form-control" min="9/10/2018"/>

使用Jquery新版本:

function SetMinDate() {
    var now = new Date();

    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);

    var today = now.getFullYear() + "-" + (month) + "-" + (day);

    $('#ExpiryDate').val(today);
    $('#ExpiryDate').attr('min', today); }

答案 5 :(得分:1)

<块引用>

要选择大于起始日期,我们可以使用此代码

 $(document).on("change", "#from", function () {
        debugger
        var date = $(this).val();
       
        $('#to').attr('min', date);
    
    });

答案 6 :(得分:0)

  $(function() {
          $(document).ready(function () {
            var todaysDate = new Date();
            var year = todaysDate.getFullYear();
            var month = ("0" + (todaysDate.getMonth() + 1)).slice(-2);
            var day = ("0" + todaysDate.getDate()).slice(-2);
            var maxDate = (year +"-"+ month +"-"+ day);
            $('.class_of_input_field').attr('min',maxDate);
          });
        });``

答案 7 :(得分:0)

这是一个PHP解决方案,可获取今天的日期并将其设置为最小值。

<input type="date" id="txtDate" min="<?php echo date("Y-m-d"); ?>">

这将以正确的两位数格式显示日期和月份。 https://www.php.net/manual/en/function.date.php

答案 8 :(得分:0)

<input type="date" id="date"> 
var date = new Date().toISOString().slice(0,10);

//To restrict past date

$('#date').attr('min', date);

//To restrict future date

$('#date').attr('max', date);