我只是有這樣的代碼簡單的一行:設置日期輸入字段的最大日期爲今天
<input type='date' min='1899-01-01' max='2000-01-01'></input>
有一個簡單的方法來設置最大日期爲「今天」,而不是2000-01-01 ?或者我必須使用Javascript來做到這一點?
我只是有這樣的代碼簡單的一行:設置日期輸入字段的最大日期爲今天
<input type='date' min='1899-01-01' max='2000-01-01'></input>
有一個簡單的方法來設置最大日期爲「今天」,而不是2000-01-01 ?或者我必須使用Javascript來做到這一點?
JavaScript將是必需的;例如:
$(function(){
$('[type="date"]').prop('max', function(){
return new Date().toJSON().split('T')[0];
});
});
yes和no。有最小值和最大值的屬性在HTML 5,但
在Internet Explorer 10+或Firefox max屬性不會爲日期和時間的工作,因爲IE 10+和Firefox不支持這些輸入類型。
因此,如果您對該屬性的文檔感到困惑,但它不起作用,這就是爲什麼。
有關版本,請參見W3 page。
我發現它最容易使用Javascript,其他答案說,因爲你可以使用預製模塊。此外,許多Javascript日期選擇器庫有一個最小/最大設置,並有很好的日曆外觀。
您將需要Javascript才能做到這一點:
HTML
<input id="datefield" type='date' min='1899-01-01' max='2000-13-13'></input>
JS
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
today = yyyy+'-'+mm+'-'+dd;
document.getElementById("datefield").setAttribute("max", today);
代替的Javascript,較短的基於PHP的解決方案可能是:
<input type="date" name="date1" max=
<?php
echo date('Y-m-d');
?>
>
您應該使用適當的模板系統,而不是混合HTML和PHP代碼。 – bfontaine
我也有同樣的問題。我建立它低谷此way.I使用Struts 2框架。
<script type="text/javascript">
$(document).ready(function() {
var year = (new Date).getFullYear();
$("#effectiveDateId").datepicker({dateFormat: "mm/dd/yy", maxDate:
0});
});
</script>
<s:textfield name="effectiveDate" cssClass="input-large"
key="label.warrantRateMappingToPropertyTypeForm.effectiveDate"
id="effectiveDateId" required="true"/>
這對我有效。
完美地工作..希望HTML5原生提供這種功能或靈活的日期格式選項 – exexzian