日期/天数计数器(不包括周末)

Date / days counter (excluding weekends)

对于我的 Woocommerce 商店,我正忙着在 javascript 中写下我的产品的预计发货日期。通过(以及其他)w3schools,我在合并到下面的代码中之后来到了这里。这非常接近我要找的东西。

<style>
    
    h1{     
    margin-top: 0px !important;
    margin-bottom: 0px !important;
    float: left !important;
    padding-right: 10px !important;
    }
    
</style>
        
        
<h1 id="dag"></h1><h1 id="datum"></h1><h1 id="maand"></h1>
        
<script>
        var d = new Date();
        d.setDate(d.getDate() + 3);
        var days = ["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"];
        document.getElementById("dag").innerHTML = days[d.getDay()];
        
        var d = new Date();
        d.setDate(d.getDate() + 3);
        document.getElementById("datum").innerHTML = d.getDate();
        
        var d = new Date();
        d.setDate(d.getDate() + 3);
        var months = ["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"];
        document.getElementById("maand").innerHTML = months[d.getMonth()];
        
        
</script>

不过,我要补充最后一件事。周末(周六和周日)不发货。因此,'Saturday' 和 'Sunday' 被排除在外是有意的。如果是周六或周日,则必须显示下一个工作日(周一)。

示例: 1 月 9 日星期六 = 1 月 11 日星期一 1 月 10 日星期日 = 1 月 11 日星期一

因此,我缺乏这方面的知识,因此需要帮助:(

编辑:

如何将其添加到我的 wordpress 页面(通过代码片段)?? See snippet screenshot

使用 getDay() 进行简单检查可能对您有用。您已经在数组中使用 getDay() 来检查今天是哪一天,因此我们可以对此进行扩展并添加一些简单的检查,如果 d.getDay() 的结果是,将更改您的 d 日期变量0 (Sunday/Zondag) 或 6 (Saturday/Zaterdag)。假设代码的 d.setDate(d.getDate() + 3); 块表示 3 天发货,我们可以先将 3 天的发货时间添加到日期,然后检查生成的 d 日期变量是哪一天,如果是星期六,将额外的 2 天送货时间添加到 d 日期变量。如果生成的 d 日期变量是添加 3 天发货后的星期日,我们只需要再添加 1 天发货。

此外,无需创建当前日期的 3 个实例,因为您只需创建 1 个日期实例即可解决此问题。

解决方法如下:

let days = ["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"];
let months = ["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"];
let d = new Date();

d.setDate(d.getDate() + 3);
if (d.getDay() === 0)
    d.setDate(d.getDate() + 1)
else if (d.getDay() === 6)
    d.setDate(d.getDate() + 2)

document.getElementById("dag").innerHTML = days[d.getDay()];
document.getElementById("datum").innerHTML = d.getDate();
document.getElementById("maand").innerHTML = months[d.getMonth()];