2010-03-25 109 views
6

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

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

你能帮我吗?

+1

你得到的答案?如果是,请发布代码。 – 2012-10-03 09:08:37

回答

1

基于source,它看起来不太好。

var today = new Date(); 

这将始终是用户的系统日期。

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

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

*我不能强调这是一个想法有多糟糕。该函数用于标准化日期选择器中的大部分日期,因此您必须编写一些非常复杂的逻辑来避免将所有内容搞乱。这可能不可行。

+1

为什么你的用户的系统日期如此糟糕? - >好吧,我不知道!我收到用户的请求,表示他/她不能使用我的网站,因为datepicker的日期限制为2000年和2001年(未来一年是期限,用户可以选择日期)。 – Newbie 2010-03-25 15:32:57

-2

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

如果是这样的日期选择器有一个option允许您设置此。

+0

不,默认日期是启动时的选定日期,但我正在查找今天的日期。 – Newbie 2010-03-25 14:36:44

+0

这个特定风格的答案应该是一个评论。我为一面旗子而动心......斯里! – 2015-04-27 21:28:44

0

一个小调整到所选择的答案中jQuery UI DatePicker change highlighted "today" date

// 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其中显示了完整的代码和用法:http://jsfiddle.net/NAzz7/5/