我想在jQuery Datepicker中明确更改今天突出显示的日期。我已经尝试设置默认日期,但突出显示的日期仍然是我今天的本地计算机日期。
我想这样做是因为我使用的是自定义时区。基本上,此自定义时区中的当前年/月/日期与本地计算机的当前日期不同。
例如
假设今天的日期是2014年10月7日,与我的计算机日期相同,但使用自定义时区,今天的日期突出显示应该是2014年9月7日:
答案 0 :(得分:1)
不幸的是,'今天'在DatePicker的HTMLRendering阶段计算,这意味着要覆盖'您需要重新定义_generateHTML
$.datepicker
方法。我也发现了'今天'其中的按钮的默认状态被此覆盖破坏,因此有必要覆盖该方法。
基本上,datepicker设置一个这样的内部变量' tempDate = new Date()'然后使用它来创建今天'。我们所做的就是使用一些时区偏移代码覆盖该变量,其余的将自行排序。
在下面的演示中,顶部是appLocalTimezone
的变量,将其设置为您想要的时区,它将根据应用更新日期选择器。原始代码/答案的所有功劳都在小提琴中
<强> jsFiddle Demo 强>
答案 1 :(得分:0)
对@ 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个datepicker方法来有条件地使用&#34;今天&#34;日期而不是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,其中显示了完整的代码和用法: http://jsfiddle.net/NAzz7/5/
答案 2 :(得分:-1)
使用 $(“。selector”)。datepicker({defaultDate:-1});