2013-10-05 23 views
0

我想創建一個布爾函數來檢查當前日期/時間是否爲工作時間。現在知道工作時間爲上午9點至下午5點每週週五除外&星期六,我面臨着我已經想出的問題。我認爲我的代碼在檢查日期方面效果很好,但我無法在數小時內使用它。這裏是我的代碼:檢查工時

var dayOfWeek = now.getDay(); 
//weekday 0==Sunday 1==Monday 2==Tuesday 3==Wednesday 4==Thurs 5==Friday 6==Sat 
//Not Friday or Saturday 
if ((dayOfWeek != 5) && (dayOfWeek != 6)){ 

    if (now.getHours() >= 9 && now.getHours() < 17) { 
     //Within working hours now." 
    } 
    else 
    { 
    //After working hours." 
    } 
} 

} 

這裏是我的jsfiddle的HTML代碼測試:

http://jsfiddle.net/jp9BW/ 改變我的電腦時鐘工作。我的測試用例是下午5點開始的工作日。這就是問題發生的時間。 else塊沒有被擊中。

+0

問題是什麼? – thefourtheye

+0

現在的問題是,我發佈的代碼獲得正確的日子。所以,如果這不是一個工作日,事情就會變好。但是,問題是時間不在工作時間。所以如果這是一個工作日而不是一個工作小時,那麼else語句不會被打中。 – FrengiX

+0

我沒有看到你的代碼的問題。對我來說工作得很好。也許你在其他地方有問題? – eis

回答

2

我認爲,這應該是足夠

function isWorkingHour(now) { 
    return now.getDay() <= 4 && now.getHours() >= 9 && now.getHours() < 17; 
} 
+0

這會在工作時間內返回17:55 – eis

+0

@FrengiX是的,它會返回一個布爾型 – eis

+0

@eis希望現在好了:) – thefourtheye

2

我會做這樣的

function checkTime() { 
    var d = new Date(), // current time 
     hours = d.getHours(), 
     mins = d.getMinutes(); 
    return $.inArray(d.getDay(), [1, 2, 3, 4, 5]) 
      && hours >= 9 
      && (hours < 17 || hours === 17 && mins <= 30); 
} 
+0

看起來像你使用jQuery ..我是一個新手,剛開始JS其實。所以我可以看到函數中的邏輯,但不能將其與我的代碼關聯起來。我的想法是創建一個簡單的布爾JS函數來返回true或false。在我的代碼中,我將使用一個簡單的IF語句來檢查工作時間,並據此進行操作 – FrengiX

+0

我真的沒有看到添加的jQuery只是爲了檢查的原因,如果事情是在數組或不 – eis

+0

還要注意,這並不符合要求。要求檢查是否星期五或星期六,星期六或星期日不檢查,並檢查09:00 - 17:30而不是09:00 - 17:00。 – eis