如何在 php datepicker 中禁用过去的日期 [重复]

Posted

技术标签:

【中文标题】如何在 php datepicker 中禁用过去的日期 [重复]【英文标题】:How could I disable past dates in php datepicker [duplicate] 【发布时间】: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>

【问题讨论】:

在谷歌上搜索:disable previous dates in datepicker。你一定会得到答案 是的。我该怎么办? :( ***.com/questions/25053119/… 【参考方案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">

【讨论】:

以上是关于如何在 php datepicker 中禁用过去的日期 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jquery UI datepicker 中禁用今天之前的日期?

Bootstrap Datepicker 在设置第一个日期字段后禁用过去日期

Jquery Bootstrap Datepicker 禁用过去日期并且不自动填充输入框

选择第一个日期后禁用过去日期为datepicker

在 iPhone Objective C 中的 UIDatePicker 中禁用过去日期

在 PHP 和 Mysql 的 jquery datepickers 中禁用给定范围内的日期