将未来的日子添加到Javascript中(星期日除外)

时间:2019-03-05 08:32:19

标签: javascript jquery

我有以下javascript代码,该代码仅允许用户从今天起选择未来四天。

$(function() {
  var dtToday = new Date();

  var month = dtToday.getMonth() + 1;
  if (dtToday.getDay() === 0) {
    var day = dtToday.getDate() + 5;
  } else {
    var day = dtToday.getDate() + 4;
  }
  var year = dtToday.getFullYear();
  if (month < 10)
    month = '0' + month.toString();
  if (day < 10)
    day = '0' + day.toString();

  var maxDate = year + '-' + month + '-' + day;
  $('.datepicker').attr('max', maxDate);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

我希望代码跳过星期日,而将以后的日子增加4。我尝试使用if语句,但是它们仅检查今天的日期是否为星期日,而我希望达到一种情况,即如果将来的4天中的任何一个为星期日,则应跳过该情况。 谢谢

1 个答案:

答案 0 :(得分:1)

如果今天是星期三(3),星期四(4),星期五(5)或星期六(6),则您的4天窗口将包括星期日(因此,您应在天数中加1)。 这样做:

var day = dtToday.getDate() + 4;
if(dtToday.getDay() > 2) {
    day += 1;
}

所以您的脚本应该是:

$(function(){
        var dtToday = new Date();

        var month = dtToday.getMonth() + 1;
        var day = dtToday.getDate() + 4;
        if(dtToday.getDay() > 2) {
            day += 1;
        }
        var year = dtToday.getFullYear();
        if(month < 10)
            month = '0' + month.toString();
        if(day < 10)
            day = '0' + day.toString();

        var maxDate = year + '-' + month + '-' + day;
        $('.datepicker').attr('max', maxDate);
    });