【问题标题】:Date / days counter (excluding weekends) [duplicate]日期/天数计数器(不包括周末)[重复]
【发布时间】:2020-12-29 20:01:43
【问题描述】:

对于我的 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>

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

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

因此,需要帮助,因为我缺乏这些知识:(

编辑:

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

【问题讨论】:

  • 订单似乎在下订单后 3 天发货,除非 3 天在周六或周日结束。因此,周三下的订单增加 5 天,周四下的订单增加 4 天。否则,添加 3:d.setDate(d.getDate() + (d.getDate() == 3? 5: d.getDate() == 4? 4 : 3))

标签: javascript date counter


【解决方案1】:

使用getDay() 进行简单检查可能对您有用。您已经在数组中使用getDay() 来检查它是哪一天,因此我们可以对此进行扩展并添加一些简单的检查,如果d.getDay() 的结果为0(星期日/Zondag),这些检查将更改您的d 日期变量或 6(周六/Zaterdag)。假设你代码的d.setDate(d.getDate() + 3);块代表3天发货,我们可以先将3天的发货时间加到日期上,然后检查生成的d日期变量是哪一天,如果是星期六,添加d 日期变量的额外 2 天发货。如果生成的 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()];

【讨论】:

  • 谢谢,这就是我要找的。最后一个问题,你知道如何将这段代码添加到functions.php文件吗?是否需要围绕它构建某种功能?
猜你喜欢
  • 2019-04-15
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
相关资源
最近更新 更多