显示/显示jQuery datepicker返回天数

时间:2013-11-28 15:46:11

标签: jquery datepicker

有几种方法可以显示jQuery datepicker显示的最后一天的日期。让我们说目前正在显示的datepicker允许从2个月中选择(numberOfMonths:2)。如何获得datepicker上显示的最后一天。 (如果它显示1月和2月,我怎么得到2月28日?) onSelect并没有真正起作用,因为如果我导航到其他月份,我会放弃参考日。我只需要向用户返回日期/月份datepicker显示的值。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

有趣的问题。

幸运的是,datepicker中的实例对象充满了有用的数据。它包含drawMonthdrawYear,因此显示第一个日期非常简单。

将日期设置为提前两个月,日期为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());
    })
});

演示:http://jsfiddle.net/y6gVM/