如何在jQuery datepicker中获取所选月份的最后一天?

时间:2018-12-06 04:57:55

标签: javascript jquery

我想在selected的jquery datepicker中获取onSelect月的最后一天

我当前的代码如下:

  var j = jQuery.noConflict();
  j('.epo-field-date').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: 0,
    maxDate: '1m',
    firstDay: 1,
    onSelect: function(dateText, inst, dateob) {

      var chosen_month = j.datepicker._defaults.monthNames[inst.selectedMonth];
      var chosen_day = date_selected_parts[2];

      j('.chosen-month .month').text(chosen_month);


    }
  });

例如,当我单击1月中的任何一天时,我应该能够返回值31或取决于该月所选日期的最后一天。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以在$(this).datepicker('getDate');事件中使用onSelect将选定的日期作为JavaScript Date获取。

要获取月份的最后一天,您实际上可以将月份提前1,并将月份中的日期设置为0

例如,如果您想要十二月的最后一天,则JavaScript允许您通过获取January 1来获取January 0的前一天。

var j = jQuery.noConflict();
j('.epo-field-date').datepicker({
  dateFormat: "yy-mm-dd",
  minDate: 0,
  maxDate: '1m',
  firstDay: 1,
  onSelect: function(dateText, inst, dateob) {

    var selectedDate = $(this).datepicker('getDate');
    var selectedMonth = selectedDate.getMonth();
    var selectedYear = selectedDate.getFullYear();

    var lastDate = new Date(selectedYear, selectedMonth + 1, 0);
    var lastDay = lastDate.getDate();

    //Do something with lastDay

  }
});

使用今天的日期的示例:

var today = new Date();
var month = today.getMonth();
var year = today.getFullYear();

var lastDate = new Date(year, month + 1, 0);
var lastDay = lastDate.getDate();

console.log("Last day of the month:", lastDate.toLocaleString());
console.log("Date as number:", lastDay);

答案 1 :(得分:1)

非常简单,您可以按照以下代码获取选定的年,月并创建新日期以获取最后日期。

以下示例代码供您参考:

<!DOCTYPE html>
<html>
<body>

 <h2>JavaScript new Date()</h2>

 <p id="demo"></p>

 <script>
 var date = new Date();
 var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
 var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

 document.getElementById("demo").innerHTML = lastDay;
 </script>

 </body>
 </html>