0

我有这段代码,通过它我可以显示未来的工作日,因此不包括周末。我还想排除个性化的假期日期,在这种情况下会发生同样的事情(计数++,我猜)。

例如,我想排除这些日期:["2019-11-6", "2019-11-13"] 如何将其集成到代码中?

我需要这个来显示一个工作日的未来交货日期,不包括周末和一些自定义日期。

我已经在 StackOverflow 上阅读并测试了无数类似的问题,但我没有找到任何有效的方法。

jQuery(function($) {
  var monthNames = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];
  var dayNames = ["domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"]

  var endDate = "",
    noOfDaysToAdd = 1,
    count = 0;
  var someDate = new Date();
  var numberOfDaysToAdd = noOfDaysToAdd;
  someDate.setDate(someDate.getDate());

  while (count < noOfDaysToAdd) {
    endDate = new Date(someDate.setDate(someDate.getDate() + 1));
    if (endDate.getDay() != 0 && endDate.getDay() != 6) {
      count++;
    }
  }

  $('#Date').html(dayNames[endDate.getDay()] + ' ' + endDate.getDate() + ' ' + monthNames[endDate.getMonth()] + ' ' + endDate.getFullYear());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="Date"></div>

该代码适用于排除周末,但我也希望帮助添加自定义的假期日期。

4

1 回答 1

0

感谢 Silentw 给了我正确的方向!经过几次研究,我意识到缺少的只是设置用逗号分隔的日期数字。现在它似乎工作得很好。谢谢大家的支持。

以下是感兴趣的人的工作代码:


jQuery(function($) {
  var monthNames = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];
  var dayNames = ["domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"];
  var holidays = ["2019, 11, 8", "2019, 11, 11", "2019, 11, 12", "2019, 11, 13", "2019, 11, 14", "2019, 11, 15", "2019, 11, 18"];
  var endDate = "",
    noOfDaysToAdd = 3,
    count = 0;
  var someDate = new Date(new Date().toDateString());
  var numberOfDaysToAdd = noOfDaysToAdd;
  someDate.setDate(someDate.getDate());
  while (count < noOfDaysToAdd) {
    endDate = new Date(someDate.setDate(someDate.getDate() + 1));
    var isHoliday = holidays.find(holiday => endDate.getTime() == new Date(holiday).getTime());
    if (isHoliday) {
      console.log('holiday, skipping');
    } else if (endDate.getDay() != 0 && endDate.getDay() != 6) {
      count++;
    }
  }
$('#Date').html(dayNames[endDate.getDay()] + ' ' + endDate.getDate() + ' ' + monthNames[endDate.getMonth()]);   
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="Date"></div>

代表OP添加

于 2019-11-17T20:10:48.960 回答