Ben*_*air 16 jquery jquery-ui jquery-ui-datepicker
我有不少客户抱怨他们何时更改JQuery Datepicker上的日期,它没有更新日期...这是因为他们更改月/年并期望它更新日期而不选择一个.
所以我想我会帮助他们并使用onChangeMonthYear()函数自动更新它们的日期.
我的代码如下.当我改变月份或年份时,我需要到2017年或1987年......我不明白出了什么问题.我错过了什么吗?
$('#member_birthday_full').datepicker({
altField: '#member_birthday',
altFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
dateFormat: 'DD, d MM yy',
showAnim: 'slideDown',
yearRange: '-125:+0',
onChangeMonthYear:function(y, m, i){
var d = i.selectedDay + '';
if (d.length < 2)
d = '0' + d;
var m = m + '';
if (m.length < 2)
m = '0' + m;
$(this).datepicker( "setDate", y + '-' + m + '-' + d );
}
});?
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 27
最简单的解决方案(参见演示)是使用Date对象设置新日期:
onChangeMonthYear:function(y, m, i){
var d = i.selectedDay;
$(this).datepicker('setDate', new Date(y, m - 1, d));
}
Run Code Online (Sandbox Code Playgroud)
从精细手册:
setDate(date)
[...]
date
类型:字符串或日期
新日期.
但是你要在中设置新的日期altFormat.然后,datepicker尽力yy-mm-dd使用DD, d MM yy格式解析日期,最终在1887年,所有人都感到茫然和困惑,并想知道你的DeLorean在哪里.
如果他们试图从1月31日搬到2月份,你也会想要决定你要做什么.你可能想要去2月28日(或闰年29).如果你从1月29日,1月30日,5月31日开始,那么类似的问题将会出现......并且向前推进一个月; 如果你从6月30日开始尝试回去一个月,会出现稍微不同的问题.我将把它作为读者的练习.