从jquery datepicker计算日期

我正在从jquery datepicker计算年龄。 但只有日期为(mm/dd/yy)格式时才有效。 我需要以dd/mm/yy

//码

 $('#dob').datepicker({ onSelect: function(value, ui) { var today = new Date(), dob = new Date(value), age = new Date(today - dob).getFullYear() - 1970; $('#age').text(age); }, maxDate: '+0d', yearRange: '1920:2010', changeMonth: true, changeYear: true }); 

如果我尝试在属性中设置dateFormat: 'mm/dd/yy' ,这将不起作用。 有帮助吗?

试试这个: http : //jsfiddle.net/lotusgodkk/GCu2D/120/

JS:

 $('#dob').datepicker({ onSelect: function(value, ui) { console.log(ui.selectedYear) var today = new Date(), dob = new Date(value), age = ui.selectedYear - 1970; //This is the update $('#age').text(age); }, maxDate: '+0d', yearRange: '1920:2010', changeMonth: true, changeYear: true, }); 

如果在控制台中检查ui对象,您将看到它分别存储年,日,月。 您可以像ui.selectedDayselectedYear一样访问它们。 希望这可以帮助。

演示小提琴mm / dd / yy 演示小提琴dd / mm / yy

jQuery的

 onSelect: function (value, ui) { var today = new Date(); var format = value.split("/"); var dob = new Date(format[2], format[0], format[1]); var diff = (today - dob); var age = Math.floor(diff / 31536000000); $('#age').text(age); }, 

参考

希望能帮助到你….

这个答案适用于所有日期,因为月份从日期函数中的0开始。 日期格式(dd-mm-yy)。

 var now= new Date(); var year= now.getFullYear(); $('#dob').datepicker({ onSelect: function (value, ui) { var today = new Date(); console.log(today.getFullYear()); var format = value.split("-"); console.log(format[2]); var dob = new Date(format[2], format[1]-1, format[0]); console.log(dob); var diff = (today - dob); var age = Math.floor(diff / 31536000000); $('#age').text(age); }, dateFormat: 'dd-mm-yy', maxDate: '+0d', yearRange: '1920:'+year, changeMonth: true, changeYear: true }); 
 $("#dob").datepicker({ onSelect: function (value, ui) { debugger var today = new Date(); var year = today.getFullYear() - ui.selectedYear; var month = today.getMonth() - ui.selectedMonth; var date = today.getDate() - ui.selectedDay; if ((year == 0 && month == 0 && date < 0) || (year == 0 && month < 0) || (year < 0)) { $("#lbl6").show(); $("#age").val(""); } else if ((year == 0) || (year > 0 && month == 0 && date >= 0) || (year > 0 && month > 0)) { $("#age").val(year); } else if ((year > 0 && month == 0 && date < 0) || (year > 0 && month < 0)) { $("#age").val(year - 1); } }, dateFormat: 'dd M y', changeMonth: true, changeYear: true, yearRange: '1900:2020' });