如何获得两个日期之间的日子

时间:2016-07-31 10:38:47

标签: javascript jquery

我有2个datepickers fr startdate和enddate。

1)例如,我的开始时间是“01/08/2016”。我的结束日期是“2016年8月6日”。

2)我选择了(8月1日至8月6日)共六天。

3)我如何获得那些日子或在警报中打印所有6天。

jsfiddle

var nowTemp = new Date();
      var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
      var checkin = jQuery('#startDate').fdatepicker({
          format: "dd.mm.yyyy",
          onRender: function (date) {
              return date.valueOf() < now.valueOf() ? 'disabled' : '';
          }
      }).on('changeDate', function (ev) {
          }).data('datepicker');
      var checkout = jQuery('#endDate').fdatepicker({
          format: "dd.mm.yyyy",
          onRender: function (date) {
              return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : '';
          }
      }).on('changeDate', function (ev) {
              checkout.hide();
          }).data('datepicker');

          jQuery("#startDate,#endDate").fdatepicker({
              autoclose: true,
              format: "dd.mm.yyyy",
              language: 'de',
              todayHighlight: false
          });
<input type="text" id="startDate" name="start_datum" class="input_text date"   value="" >
    
<input type="text" id="endDate" name="end_datum" class="input_text" value="">

3 个答案:

答案 0 :(得分:1)

你可以这样做:

var days = Math.round(Math.abs((date1.getTime() - date2.getTime())/(24*60*60*1000)));

答案 1 :(得分:1)

您可以使用Date.prototype.getDateDate.prototype.setDate

var start = new Date('2016-07-31'),
  end = new Date('2016-08-06');

var date = start;
do {
  var date = new Date(date.setDate(date.getDate() + 1));
  console.log(date);
} while (date < end);

答案 2 :(得分:0)

你可以使用时刻js。请参阅该库的解决方案:

    var dateB = moment('2016-08-01');
    var dateC = moment('2016-08-06');

    console.log('Difference is ', dateB.diff(dateC), 'milliseconds');
    console.log('Difference is ', dateB.diff(dateC, 'days'), 'days');

这个图书馆非常适合日期管理。