我想顯式更改jQuery Datepicker中突出顯示的今天日期。我已經嘗試設置默認日期,但突出顯示的日期仍然是我本地計算機的日期,即今天。jQuery UI DatePicker更改突出顯示「今天」日期
我想這樣做,因爲我正在使用自定義時區。基本上這個自定義時區中的當前年/月/日與本地計算機的當前日期不同。
例如,
說今天的日期是2014年7月10日同我的電腦的日期,但使用自定義時區,今天的日期加亮應該是2014年7月9日:
我想顯式更改jQuery Datepicker中突出顯示的今天日期。我已經嘗試設置默認日期,但突出顯示的日期仍然是我本地計算機的日期,即今天。jQuery UI DatePicker更改突出顯示「今天」日期
我想這樣做,因爲我正在使用自定義時區。基本上這個自定義時區中的當前年/月/日與本地計算機的當前日期不同。
例如,
說今天的日期是2014年7月10日同我的電腦的日期,但使用自定義時區,今天的日期加亮應該是2014年7月9日:
不幸的是,'今日'是在DatePicker的HTMLRendering階段計算的,這意味着爲了'重寫'您需要重新定義$.datepicker
的_generateHTML
方法。我還發現,它的默認狀態中的「今日」按鈕被這個覆蓋打破,所以有必要重寫該方法。
基本上,datepicker設置一個像這樣的'tempDate = new Date()'的內部變量,然後使用它來創建'今天'。我們所做的就是用一些時區偏移代碼覆蓋該變量,其餘的則自行排列。
在下面的演示中,頂部是一個變量appLocalTimezone
,將其設置爲您所需的時區,並且會根據應用更新日期選擇器。對於原代碼的所有信用卡/答案都在撥弄
使用$( 「.selector」).datepicker({defaultDate:-1});
這隻會改變打開日期選擇器時自動選擇哪個日期(來自docs:「如果該字段爲空,請將日期設置爲在首次打開時突出顯示」)。 OP是問如何覆蓋哪個日期設置爲'今天' – haxxxton
小調整到@ haxxxton的,可以讓你在localToday
傳遞作爲日期選擇器的選項。
// Get users 'today' date
var localToday = new Date();
localToday.setDate(tomorrow.getDate()+1); // tomorrow
// Pass the today date to datepicker
$("#datepicker").datepicker({
showButtonPanel: true,
localToday: localToday // This option determines the highlighted today date
});
我已經覆蓋2層日期選擇器的方法來有條件地使用新設置爲「今天」時代,而不是一個new Date()
。新設置稱爲localToday
。
覆蓋$.datepicker._gotoToday
和$.datepicker._generateHTML
這樣的:
$.datepicker._gotoToday = function(id) {
/* ... */
var date = inst.settings.localToday || new Date()
/* ... */
}
$.datepicker._generateHTML = function(inst) {
/* ... */
tempDate = inst.settings.localToday || new Date()
/* ... */
}
這裏有一個demo這顯示了完整的代碼和用法:[?jQuery的日期選擇器 - 改變 「今天」 日期] http://jsfiddle.net/NAzz7/5/
的可能重複( http://stackoverflow.com/questions/2516199/jquery-datepicker-change-today-date) –
也是一堆http://stackoverflow.com/questions/15005263/how-to-change-default-highlighted-date -in-日期選擇器? –