【问题标题】:jQuery datepicker return days shown/displayedjQuery datepicker 返回显示/显示的天数
【发布时间】:2013-11-28 15:46:10
【问题描述】:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery datepicker


    【解决方案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

    【讨论】:

      【解决方案2】:

      如果您可以依赖 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/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        • 2023-03-10
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多