2016-02-20 33 views

回答

0

这应做(未经测试):

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); 
} 
+0

这将永远不会在星期天工作。 http://www.w3schools.com/jsref/jsref_getday.asp明确指出,星期天将返回0. – Bigalow

+0

@ Bigalow-请不要引用w3schools,它不是一个权威,甚至是非常好的。对于规范性引用或[* MDN *](https),请参考[* ECMA-262 *](http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype.getday) ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay)为例。 – RobG

+0

@RobG感谢您的反馈,我会在下次记住它。 – Bigalow

0

我会做这样的:

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天。因此,您将获得下一周的下一个星期三。

我可以指出,如果您无法发布您的代码并让社区帮助您,那么可以自定义首次编写自己的东西。

+0

谢谢@Bigalow。这很好。你会如何为这个日期和时间创建一个倒计时? EX:如果用户在下一个x时间内下订单,请在X星期三的基础上按照上述相同的逻辑接收您的订单? –

+0

@MateoM-你应该写代码,然后在这里发布,如果它不起作用。这不是一个免费的写作网站。关于创建计时器和倒计时,搜索,阅读,学习,尝试一些东西有很多问题。然后问。 – RobG

+0

@MateoM RobG说,你应该开始一个新的问题。通过一些示例代码,如果您遇到困难,该社区肯定会对您有所帮助。请接受这个答案,因为它解决了您的原始问题。 – Bigalow

相关问题