jQuery的:如何设置范围内的日期选择器开始日期

时间:2019-06-22 08:45:31

标签: javascript jquery date-range daterangepicker

我正在尝试将日期范围的开始和结束日期设置为datepicker(),其中该范围的开始日期是过去7天,结束日期是昨天。

目前,我可以正常使用该范围,因此该范围的开始日期是过去7天,但是我不知道如何将结束日期设置为昨天。

我已经尝试了以下方法,但是它无法正常工作:

var mindate = new Date();
    mindate.setDate(mindate.getDate() - 7);
    $('#date').datepicker({
        language: 'en',
            range : true,
            minDate : mindate,
            maxDate : new Date() - 1,   //I guess the problem is here
            multipleDates: true,
            multipleDatesSeparator: " - "
    })

3 个答案:

答案 0 :(得分:2)

一种方法是使用与计算maxdate相同的技术来计算mindate,然后将最大日期值应用于{{1 }}实例:

maxData

datepicker()插件还允许您通过the number of days relative to today's date指定var mindate = new Date(); mindate.setDate(mindate.getDate() - 7); /* Compute max date of "yesterday" using same method as min date */ var maxdate = new Date(); maxdate.setDate(maxdate.getDate() - 1); $('#date').datepicker({ language: 'en', range : true, minDate : mindate, maxDate : maxdate, /* Apply max date to date picker */ multipleDates: true, multipleDatesSeparator: " - " }); datepicker()。这意味着您可以通过指定minDatemaxDate来获得与上述相同的结果,而无需计算mindatemaxdate,如下所示:

minDate

答案 1 :(得分:1)

minDate和maxDate可以是从今天开始的天数。

https://api.jqueryui.com/datepicker/#option-minDate

所以您要做的就是

minDate: -1,
maxDate: -7,

答案 2 :(得分:1)

在HTML5中,您已经有一个<input type="date">,因此您不需要任何类型的jQuery。

除非您需要旧版浏览器的支持,否则我只能建议在jquery上使用HTML5。

HTML

<input type="date" id="date">

香草JS

function getHtmlDateString(date) {
  var dd = date.getDate();
  var mm = date.getMonth()+1; //January is 0!
  var yyyy = date.getFullYear();
  if(dd<10){
    dd='0'+dd
  } 
  if(mm<10){
    mm='0'+mm
  } 

  return yyyy+'-'+mm+'-'+dd;
}

var min = new Date();
min.setDate(min.getDate()-7);
document.getElementById("date").setAttribute("min", getHtmlDateString(min));
var max = new Date();
max.setDate(max.getDate()-1);
document.getElementById("date").setAttribute("max", getHtmlDateString(max));

JSFiddle:https://jsfiddle.net/hmqe4sb6/