jQuery datepicker – 如何更改“今天”日期?

有没有办法在jquery.ui datepicker中更改“今天”日期? 今天,我的意思是今天(class =“ui-datepicker-today”)而不是minDate或当前选择的日期!

我发现,datepicker使用系统时间作为默认值。 现在我从服务器获取当前日期并将其设置为我的minDate。 但我没有找到设置今天日期的方法……它仍然使用我的系统日期(有一些用户,其系统日期是2000年或更早)。

你能帮我吗?

根据来源 ,它看起来不太好。

var today = new Date(); 

这总是用户的系统日期。

如果你绝对必须解决这个问题,请往下看; 你可以覆盖$.datepicker._daylightSavingAdjust并从服务器返回日期*

但这是个坏主意。 为什么你的用户的系统日期如此混乱呢? 为什么这是你的问题? 如果他们抱怨,告诉他们修理他们的时钟。

*我无法强调这是多么糟糕的想法。 该函数用于规范化日期选择器中的大多数日期,因此您必须编写一些非常复杂的逻辑以防止一切乱码。 这可能甚至不可行。

对jQuery UI DatePicker中所选答案的一个小调整突出显示“今天”日期

 // 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方法,有条件地使用“今天”日期的新设置而不是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() /* ... */ } 

这是一个演示 ,显示完整的代码和用法: http//jsfiddle.net/NAzz7/5/

您是否在打开jQuery UI Datepicker时设置默认日期?

如果是这样,则datepicker有一个允许您设置它的选项 。