【问题标题】:How could I disable past dates in php datepicker [duplicate]如何在 php datepicker 中禁用过去的日期 [重复]
【发布时间】:2017-07-12 01:17:22
【问题描述】:

如何使用函数脚本在日期选择器中禁用当前日期的旧日期?谢谢!

booknow.php

        <html>
        <body>
        <label for="shootdate">Desired Date:</label>
        <input required type="date" name="shootdate" id="shootdate" title="Choose your desired date"/>
        </body>
        </html>

【问题讨论】:

标签: javascript php html date datepicker


【解决方案1】:
<html>
    <body>
        <label for="shootdate">Desired Date:</label>
        <input required type="date" name="shootdate" id="shootdate" title="Choose your desired date" min="<?php echo date('Y-m-d'); ?>"/>
    </body>
</html>

您可以使用 PHP 本身来做到这一点。我们可以轻松地将最小日期设置为今天,这样用户就无法选择以前的日期。

或者,如果你只需要使用 jquery,试试这个

<html>
	<head>
		<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
	  	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
	  	<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
	  	<script>
	  		$( function() {
	   			$( "#shootdate" ).datepicker({
	   				minDate: 0
	   			});
	  		});
	  	</script>
	</head>
    <body>
    	<label for="shootdate">Desired Date:</label>
    	<input required type="text" name="shootdate" id="shootdate" title="Choose your desired date" />
    </body>
</html>

【讨论】:

    【解决方案2】:

    您只需在初始化时设置 datepicker 选项。需要设置选项 minDate 才能执行此操作。

    像这样初始化你的日期选择器:

    jQuery('#shootdate').datepicker({
             minDate: 0
    });
    

    【讨论】:

      【解决方案3】:

      试试这个:

      <label for="from">From</label> <input type="text" id="from" name="from"/> 
      <label for="to">to</label> <input type="text" id="shootdate" name="to"/>
      
      var dateToday = new Date();
      var dates = $("#from, #shootdate").datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
      minDate: dateToday,
      onSelect: function(selectedDate) {
          var option = this.id == "from" ? "minDate" : "maxDate",
              instance = $(this).data("datepicker"),
              date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
          dates.not(this).datepicker("option", option, date);
      }
      

      });

      【讨论】:

      • 不工作 :( "FROM" 和 "TO" 是从哪里来的?我不明白 huhuhu :(
      • 我不明白所有的 jQuery 答案。 OP 没有使用 jQuery 标签,没有在 OP 中提及,也没有包含在代码中。
      【解决方案4】:
      <p>Date: <input type="text" id="datepicker" /></p>
      
       <script>
       $(function() {
       $( "#datepicker" ).datepicker({ minDate: 0});
       });
       </script>
      

      【讨论】:

      • 日期选择器不工作:(
      • 你是如何使用的?...你必须使用 Jquery 扩展。
      【解决方案5】:

      使用输入类型日期,您可以使用 min 属性设置最小日期。但是,并非所有正在使用的浏览器都支持输入日期类型(请参阅MDN support matrix),因此您需要备用。

      function getISODate(){
        var d = new Date();
        return d.getFullYear() + '-' + 
                ('0' + (d.getMonth()+1)).slice(-2) + '-' +
                ('0' + d.getDate()).slice(-2);
      }
      
      window.onload = function() {
        document.getElementById('minToday').setAttribute('min',getISODate());
      }
      Select date (must be on or after 20-Feb-2017)<input type="date" min="2017-02-20">
      <br>
      Select date(must be on or after today)<input type="date" id="minToday">

      【讨论】:

        猜你喜欢
        • 2018-05-16
        • 1970-01-01
        • 2016-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多