不包括星期日和节假日的送货柜台

时间:2020-09-14 13:53:34

标签: javascript jquery wordpress counter

我正在使用“送货日”柜台向客户展示他们可以在哪一天收到包裹。 但有个问题。 交货天数应为(如果不是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>

希望有人可以帮助我... 非常感谢!

0 个答案:

没有答案