【问题标题】:Get first and last day of navigated month in jquery datepicker在 jquery datepicker 中获取导航月份的第一天和最后一天
【发布时间】:2018-07-10 14:34:42
【问题描述】:

我正在使用 jQuery UI 日期选择器。当我单击上一个和下一个箭头时,我想调用一个 API 并将导航月份的第一天和最后一天作为日期传递。

例如如果我通过单击下一步转到 2018 年 8 月,它应该得到 8 月的第一个和最后一个日期。

我已经收到了,但是onSelect。我想在上一个和下一个导航上得到它。

HTML:

<input type="text" id="date1" name="date1"/> 
<p id="date2"></p>

jQuery:

$('#date1').datepicker({
    onSelect: function(dateText, inst) { 
      var dateAsString = dateText; //the first parameter of this function
      var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method

      var firstDay = new Date(dateAsObject.getFullYear(), dateAsObject.getMonth(), 1);
      var lastDay = new Date(dateAsObject.getFullYear(), dateAsObject.getMonth() + 1, 0);

      $('#date2').html(firstDay+" <br/> "+lastDay); 
   }
});

查看JSFiddle

【问题讨论】:

    标签: javascript jquery jquery-ui-datepicker


    【解决方案1】:

    不要使用onSelect,而是使用onChangeMonthYear

    $('#date1').datepicker({
    
        onChangeMonthYear : function(dateText, inst, dateob) { 
          var dateAsString = dateText; 
          var dateAsObject = $(this).datepicker( 'getDate' ); 
          console.log(dateob.selectedDay +"/"+ dateob.selectedMonth +"/"+ dateob.selectedYear);
          var navidatedMonth = new Date(dateob.selectedYear, dateob.selectedMonth,  dateob.selectedDay)
    
         var firstDay = new Date(navidatedMonth.getFullYear(), navidatedMonth.getMonth(), 1);
    
          var lastDay = new Date(navidatedMonth.getFullYear(), navidatedMonth.getMonth() + 1, 0);
    
          $('#date2').html(firstDay + " <br/>" + lastDay); 
    
       }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 1970-01-01
      • 2014-03-22
      • 2011-11-24
      • 2016-08-18
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      相关资源
      最近更新 更多