我正在使用“送货日”柜台向客户展示他们可以在哪一天收到包裹。 但有个问题。 交货天数应为(如果不是3天,则定购的天数+ 2天(德国12点之前))。但是除了星期天,我都无法避免。目前,如果星期天是星期天,计数器会增加一天...但是例如,如果是星期六,则计数器不会增加一天(对于nonDeliveryDate)
atm(12点钟之后):
2020年9月17日-交货至星期一=正确
2020年9月18日-星期一交货=错误(应该是星期二)
2020年9月19日-交货至星期二=错误(应该是星期三)
2020年9月20日-交货至星期三=正确
我认为问题在于,如果“今天”是星期天,则计数器只会增加一天,而如果接下来3天中的某一天是星期天,则不会增加……但我不确定如何解决该问题。
那是我的剧本:
<script type='text/javascript'>
jQuery(function($) {
// Current date/time
var now = new Date();
// Placeholder for delivery time
var deliveryDate;
// Amount of days to deliver
var deliveryDays = 2;
// Working hours (in UTC -1)
var workingHours = [0 , 9];
// Non-delivery days/dates
// Must match the format returned by .toString():
// Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time)
var nonDelivery = [
"Sun",
"Dec 24",
"Dec 25",
"Dec 31",
"Jan 1"
];
// Create a regular expression
var rxp = new RegExp(nonDelivery.join("|"));
// addDay holds the amount of days to add to delivery date
var addDay = deliveryDays;
// Add an extra day if outside of working hours
var currentHour = now.getUTCHours();
if (currentHour < workingHours[0] ||
currentHour > workingHours[1]) {
addDay++;
}
// Create our delivery date
while (!deliveryDate) {
// Add day(s) to delivery date
now.setDate(
now.getDate() + addDay
);
deliveryDate = now;
if (rxp.test(deliveryDate)) {
addDay = 1;
deliveryDate = false;
}
}
// Format
var locale = "de-DE"; // Our locale
// var day = deliveryDate.toLocaleDateString(locale, { day: "numeric" });
var weekday = deliveryDate.toLocaleDateString(locale, { weekday: "long" });
$('#countdownDate').html( weekday + " " );
});
</script>
希望有人可以帮助我... 非常感谢!