2013-11-28 135 views
2

有幾種月份顯示時,有沒有什麼辦法讓jQuery datepicker顯示最後一天的日期。可以說datepicker目前正在顯示,並允許從2個月內挑選(numberOfMonths:2)。我怎樣才能得到在datepicker上顯示的最後一天。 (如果它顯示Jan FebFeb,我如何得到Feb 28th?) 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

+0

這種做法是更好的方式。 Upvoted! – melancia

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/