Javascript 不包括周日和节假日的送货柜台

Javascript 不包括周日和节假日的送货柜台,javascript,jquery,wordpress,counter,Javascript,Jquery,Wordpress,Counter,我用一个送货日计数器告诉我的顾客哪一天可以收到他们的包裹。 但是有一个问题。 交货日期应该是(订购日期+2天(12点之前(德国))如果不是3天),这就像一个charme。但是除了星期天,我的头都不能动了。现在,如果是星期天,柜台会加上一天。。。但例如,如果是星期六,计数器不加一天(对于非交货期) 自动取款机(12点后): 2020年9月17日-周一交货=右侧 2020年9月18日-周一交货=错误(应为周二) 2020年9月19日-周二交货=错误(应为周三) 2020年9月20日-交付至周三=右侧

我用一个送货日计数器告诉我的顾客哪一天可以收到他们的包裹。 但是有一个问题。 交货日期应该是(订购日期+2天(12点之前(德国))如果不是3天),这就像一个charme。但是除了星期天,我的头都不能动了。现在,如果是星期天,柜台会加上一天。。。但例如,如果是星期六,计数器不加一天(对于非交货期)

自动取款机(12点后):

2020年9月17日-周一交货=右侧

2020年9月18日-周一交货=错误(应为周二)

2020年9月19日-周二交货=错误(应为周三)

2020年9月20日-交付至周三=右侧

我认为问题在于,如果“今天”是星期天,计数器只会添加一天,但如果接下来的三天中有一天是星期天,则不会添加一天。。。但我真的不知道如何解决这个问题

这就是我的剧本:


jQuery(函数($){
//当前日期/时间
var now=新日期();
//交货时间占位符
var交付日期;
//交付天数
var交货天数=2;
//工作时间(UTC-1)
var工作时间=[0,9];
//未交货天数/日期
//必须与.toString()返回的格式匹配:
//1998年9月28日星期一14:36:22 GMT-0700(太平洋夏令时)
var非交付=[
“太阳”,
“12月24日”,
“12月25日”,
“12月31日”,
“1月1日”
];
//创建正则表达式
var rxp=new RegExp(nonDelivery.join(“|”);
//addDay保存要添加到交货日期的天数
var addDay=交货日;
//如果超出工作时间,则增加一天
var currentHour=now.getUTCHours();
如果(当前小时<工作小时[0]||
当前小时>工作小时[1]){
addDay++;
}
//创建我们的交货日期
而(!deliveryDate){
//将天添加到交货日期
现在。设定日期(
现在。getDate()+addDay
);
交货日期=现在;
if(rxp.测试(交付日期)){
addDay=1;
交货日期=假;
}
}
//格式
var locale=“de de”;//我们的语言环境
//var day=deliveryDate.toLocaleDateString(区域设置,{day:“numeric”});
var weekday=deliveryDate.toLocaleDateString(区域设置,{weekday:“long”});
$(“#倒计时日期”).html(工作日+”;
});

考虑到您还有其他非交货日期要排除,并且假设这些日期也像星期日一样被跳过(而不仅仅是下一个可用日期),那么您最好一步一步地完成这几天,即不要再增加2天,增加1天两次,每次检查是否是非交货日并跳过(再增加一天)如果是这样,你得到了解决方案吗?是的,像@freedomn-m说的那样。。而不是添加一次2天,我添加了一天,检查它是否是非送达,然后添加另一个。。。简单的^^