【问题标题】:Add future days to Javascript excluding on sunday将未来几天添加到 Javascript 中,不包括星期日
【发布时间】:2019-03-05 08:32:18
【问题描述】:

我有以下 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);
});
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;

我希望代码跳过星期日,同时将未来的天数增加四。我曾尝试使用 if 语句,但它们只检查今天的日期是否是星期天,而我想实现一种情况,即如果未来 4 天中的任何一天是星期天,它应该跳过它。 谢谢

【问题讨论】:

  • This 讨论了一个类似的情况(包括星期六也在递增),也许你可以看看。
  • 好的谢谢让我看看

标签: javascript jquery


【解决方案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);
    });

【讨论】:

  • 感谢您的回答。请接受我的编辑,以更具体的方式解决我的挑战。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2017-02-05
相关资源
最近更新 更多