有几种方法可以显示jQuery datepicker显示的最后一天的日期。让我们说目前正在显示的datepicker允许从2个月中选择(numberOfMonths:2)。如何获得datepicker上显示的最后一天。 (如果它显示1月和2月,我怎么得到2月28日?) onSelect并没有真正起作用,因为如果我导航到其他月份,我会放弃参考日。我只需要向用户返回日期/月份datepicker显示的值。
非常感谢任何帮助。
答案 0 :(得分:1)
有趣的问题。
幸运的是,datepicker中的实例对象充满了有用的数据。它包含drawMonth
和drawYear
,因此显示第一个日期非常简单。
将日期设置为提前两个月,日期为zero
,将返回第二个月的最后一天。
$("input").datepicker({
numberOfMonths: 2,
beforeShow: function (el, ui) {
getLastDaySHown(ui);
},
onChangeMonthYear: function (yr, mo, ui) {
getLastDaySHown(ui);
}
});
function getLastDaySHown(ui) {
/* had to wrap in short timeout as seems data not complete when beforeSHow fires*/
setTimeout(function () {
var yrFirst = ui.drawYear,
moFirst = ui.drawMonth,
moLast = moFirst + 1 < 12 ? moFirst + 1 : 0,
yrLast = moLast == 0 ? yrFirst + 1 : yrFirst,
DateLast = new Date(yrLast, moLast + 1, 0);
$('#last').text(DateLast.toString())
}, 10);
}
的 DEMO 强>
答案 1 :(得分:0)
如果您可以依赖HTML标记,那么这应该可行:
$(".datePicker").datepicker({
numberOfMonths: 2,
onChangeMonthYear: (function() {
// The "logical" way would be to look for the last and not the first,
// but the event is fired before rendering.
alert($(".ui-datepicker-group-first .ui-datepicker-calendar tr:last td[data-handler=selectDay]:last a").text());
})
});