2013-04-09 26 views
0

如何使用JavaScript(inc JQuery)獲取表示下一個11:00實例的Date對象?在Javascript中獲取指定日期/時間的下一個實例

我的例子是,如果當前時間是6月2日星期一的15:00,我想在6月3日星期二的11:00回來。同樣,如果當前日期是6月5日星期四9點15分,我想在6月5日星期四的11:00之後返回。所以它應該根據當前日期/時間返回下一個11:00的實例。

這是電子商務網站上的運輸截止日期(即每週11:00)的倒計時。

長期來看,我還想排除週末,例如,如果當前日期是6月7日星期六的09:00,它將在6月9日星期一返回11:00,但這不是我現在的主要問題。

回答

0
today=new Date() 
b=new Date() 
b.setHours(11) //11:00 AM, use 23 for 11:00 PM 
b.setMinutes(0); 
b.setSeconds(0); 
if(today-b>0){ 
    b.setDate(b.getDate()+1)//if you're at the end of the week, it will adjust for you 
} 
//The following part kicks out weekends: 
if(b.getDay()==0||){ 
    b.setDate(b.getDate()+1) //Sunday becomes Monday 
} 
if(b.getDay()==6){ 
    b.setDate(b.getDate()+2) //Saturday becomes Monday 
} 
console.log(b) 

簡單地將小時設置爲11,與今天相比,如果已經發生,則添加一天。

+0

嗨,謝謝。這可以工作,但只能到最近的小時。我需要最近的秒鐘。上述@ d'alar'cop的做法似乎可以完成這項工作。只需要一些幫助排除週末。 – 2013-04-09 10:29:41

+0

@MartinKearn:增加了一些關於週末的信息,我也會修正秒數。 – Manishearth 2013-04-09 10:32:38

+0

真棒 - 這似乎很好地工作,非常感謝。你和@ d'alar'cop都以不同的方式回答了完整的問題。 – 2013-04-09 11:25:24

0

這可能會實現:

var x = new Date(); 
var y = new Date(x.getFullYear(), x.getMonth(), (x.getHours()<11?(x.getDay()==0?x.getDate()+1:(x.getDay==6?x.getDate()+2:x.getDate())):x.getDate()+1), 11, 0, 0, 0); 
console.log(y); 

乾杯。

+0

不一定。這不會工作,如果是凌晨1點,它會給上午11點_tomorrow_雖然下一個實例是上午11點_today_ – Manishearth 2013-04-09 10:19:49

+0

@Manishearth很熱情的你投票。我想我可能已經修好了。請參閱編輯版本。 – 2013-04-09 10:22:05

+0

是的,你修正了它:) – Manishearth 2013-04-09 10:22:42

相關問題