Javascript只使用即将到来的工作日——忽略周末

Javascript use only coming weekdays - disregard weekends

本文关键字:周末 工作日 即将到来 Javascript      更新时间:2023-09-26

我怎么能只有工作日与javascript。

下面是我当前的js;

<script>
$( document ).ready(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var d = new Date();
function ordinal_suffix_of(i) {
var j = i % 10,
k = i % 100;
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
var currDay = d.getDate();
var day = days[ d.getDay() ];
var month = months[ d.getMonth() ];
var today = day + " " + ordinal_suffix_of(currDay) + " " + month;
var message2 = "The earliest delivery time today (" + today + ") is at 12:00noon";
var container = document.getElementById('availability-container');
var div = document.createElement('div');
div.className = 'availability';
div.innerHTML = "<p>" + message2; + "</p>";
container.appendChild(div);
$('.availability').addClass('animated pulse');
});
</script>

我怎样才能让"今天"只显示工作日而忽略周末,例如如果今天是星期五,不显示星期六和星期天显示星期一。

PS:我可以用PHP完成这个。

谢谢!

<script>
$( document ).ready(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var d = new Date();
function ordinal_suffix_of(i) {
var j = i % 10,
k = i % 100;
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
//----Edited Section
var currDay = d.getDate();
var day= d.getDay();
var numberOfDaysToAdd = 0;
if(day==6){
    numberOfDaysToAdd= 2;
}else if(days==0){
    numberOfDaysToAdd= 1;
}
currDay.setDate(currDay.getDate() + numberOfDaysToAdd); 
var day = days[ currDay.getDay() ];
var month = months[ currDay.getMonth() ];
//--- End of Edited Section
var today = day + " " + ordinal_suffix_of(currDay) + " " + month;
var message2 = "The earliest delivery time today (" + today + ") is at 12:00noon";
var container = document.getElementById('availability-container');
var div = document.createElement('div');
div.className = 'availability';
div.innerHTML = "<p>" + message2; + "</p>";
container.appendChild(div);
$('.availability').addClass('animated pulse');
});
</script>

试试这个:

while循环直到满足条件将有帮助!

$(document).ready(function() {
  var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  var daysToAvoid = ['Friday', 'Saturday', 'Sunday'];
  function ordinal_suffix_of(i) {
    var j = i % 10,
      k = i % 100;
    if (j == 1 && k != 11) {
      return i + "st";
    }
    if (j == 2 && k != 12) {
      return i + "nd";
    }
    if (j == 3 && k != 13) {
      return i + "rd";
    }
    return i + "th";
  }
  var d = new Date();
  var currDay = d.getDate();
  var day = days[d.getDay()];
  var month = months[d.getMonth()];
  while (daysToAvoid.indexOf(day) !== -1) {
    d.setDate(currDay + 1);
    currDay = d.getDate();
    day = days[d.getDay()];
    month = months[d.getMonth()];
  }
  var today = day + " " + ordinal_suffix_of(currDay) + " " + month;
  var message2 = "The earliest delivery time today (" + today + ") is at 12:00noon";
  var container = document.getElementById('availability-container');
  var div = document.createElement('div');
  div.className = 'availability';
  div.innerHTML = "<p>" + message2 + "</p>";
  container.appendChild(div);
  $('.availability').addClass('animated pulse');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="availability-container"></div>

下面的函数将始终确保var someDate为工作日。

var someDate = new Date();
var day= d.getDay();
var numberOfDaysToAdd = 0;
if(day==6){
   numberOfDaysToAdd= 2;
}else if(days==0){
     numberOfDaysToAdd= 1;
}
someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 

你可以这样写。

function getNextWeekday()
{
    var date = new Date();
    date.setDate(date.getDate() + 1);
    var day = date.getDay();
    if (day == 0)
    {
        date.setDate(date.getDate() + 1);
    }
    else if (day == 6)
    {
        date.setDate(date.getDate() + 2);
    }
    return date;
}