[英]future dates raise error jquery ui datepicker
我有jquery ui datepicker的腳本
var date = new Date(new Date().setDate(new Date().getDate() - 1));
$('.date').datepicker({
dateFormat: 'dd-mm-yy',
defaultDate: date,
minDate: Date.parse("1900-01-01"),
maxDate: Date.parse("2100-01-01"),
});
在我看來,我有:
@Html.TextBoxFor(m => m.EndDate, new { @class = "date" })
它適用於昨天和之前的日期,但如果我選擇今天或更高的日期,則會引發錯誤
怎么了?
編輯
GOT IT這是關於我的格式。 我希望它是dd-mm-yy,但是當我選擇例如15-05-2016時,它表示一年中沒有15個月。 我怎么解決這個問題?
Date.parse()
返回自1970年1月1日以來日期字符串的毫秒數, minDate
和maxDate
可以接受一個數字,但它以這種方式使用:
數字 :從今天起的幾天。 例如,
2
表示從今天開始的兩天,-1
表示昨天
因此,驗證期待您輸入之間的日期2208988800000
在過去的日子和4102444800000
在以后的日子里 。 這些日期非常遙遠,而且對於Date
來說太大了。
要修復它,請改用new Date()
。
$('.date').datepicker({
dateFormat: 'dd-mm-yy',
defaultDate: -1,
minDate: new Date("1900-01-01"),
maxDate: new Date("2100-01-01")
});
我自己沒試過,但它可以解決這個問題。
改變這樣的日期格式
dateFormat: 'mm-dd-yy',
或者只是刪除該行,因為默認的dateFormat是mm/dd/yy
由於我得到不顯眼的驗證需要為不同的格式重載, 這個答案幫助了我。
$.validator.addMethod('date',
function (value, element) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd-mm-yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.