【问题标题】:Javascript Display following wednesday if after 5pm on saturdayJavascript 在星期六下午 5 点之后显示在星期三之后
【发布时间】:2016-02-20 21:42:44
【问题描述】:

如何查看当前日期,如果它在星期六下午 5 点之前,则显示即将到来的星期三。但是,如果它在下午 5 点之后,那么在 javascript 中显示下一周的星期三?

【问题讨论】:

    标签: javascript date


    【解决方案1】:

    应该这样做(未经测试):

    var date = new Date();
    var hours = date.getHours();
    var day = date.getDay();
    var yourdate = new Date();
    if(day==6 && hours >=17)
    {
      yourdate.setDate(date.getDate() + 11); 
    }
    else if (day==6 && hours <17)
    {
      yourdate.setDate(date.getDate() + 4); 
    }
    else if (day==5)
    {
      yourdate.setDate(date.getDate() + 5); 
    }
    else if (day==4)
    {
      yourdate.setDate(date.getDate() + 6); 
    }
    else if (day==3)
    {
      yourdate.setDate(date.getDate() + 7); 
    }
    else if (day==2)
    {
      yourdate.setDate(date.getDate() + 8); 
    }
    else if (day==1)
    {
      yourdate.setDate(date.getDate() + 9); 
    }
    else if (day==0)
    {
      yourdate.setDate(date.getDate() + 10); 
    }
    

    【讨论】:

    • 这在星期天是行不通的。 w3schools.com/jsref/jsref_getday.asp 明确指出周日将返回 0。
    • @Bigalow — 请不要引用 w3schools,它不是权威,甚至不是很好。参考ECMA-262 以获得规范性参考或参考MDN 的例子要好得多。
    • @RobG 感谢您的反馈,下次我会记住的。
    【解决方案2】:

    我会这样做:

    var now = new Date();
    var nextWednesday = new Date();
    
    if(now.getDay() == 6 && now.getHours() >= 17){
      nextWednesday.setDate(now.getDate() + 11);
    }else{
      nextWednesday.setDate(now.getDate() + (10 - now.getDay()));
    }
    

    小提琴示例:https://jsfiddle.net/e1mLo1rv/

    如果今天是星期六,如果是下午 5 点或更晚,则添加 11 天以获得所需的星期三。在其他情况下,您可以添加 10 天减去天数以获得所需的星期三。

    周四、周五和周六下午 5 点之前将获得今天 + 10 - 6、5 或 4 天,即即将到来的周三。

    周日、周一、周二和周三将为您带来今天 + 10 - 0、1,2 或 3 天。因此,您将获得下周的下一个星期三。

    我能否指出 Stackoverflow 上的习惯是先自己编写一些东西,如果这样无法发布您的代码,而不是让社区帮助您。

    【讨论】:

    • 谢谢@Bigalow。效果很好。您将如何创建该日期和时间的倒计时? EX:如果用户在接下来的 x 时间内下订单,那么根据与上述相同的逻辑,在 X 星期三之前收到您的订单?
    • @MateoM — 你应该编写代码,如果它不起作用,请在此处发布。这不是一个免费的代码编写网站。有很多关于创建计时器和倒计时、搜索、阅读、学习、尝试的问题。然后问。
    • @MateoM 正如 RobG 所说,您应该开始一个新问题。使用一些示例代码,如果您遇到困难,社区肯定会帮助您。请接受此答案,因为它解决了您的原始问题。
    猜你喜欢
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2019-02-11
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多