2013-04-29 64 views
0

我對javascript很陌生,希望對理解這個問題有所幫助。初學者javascript小時函數

我想寫來檢查,如果當前的小時hourOne和hourTwo之間的功能,這是我到目前爲止有:

function checkHourBetween (hourOne, hourTwo) 
{ 
var date = new Date(); 
var currentHour = date.getHours(); 

if (currentHour >= hourOne && currentHour <= hourTwo) 
    { 
     return true; 
    } 

return false; 
} 

,我試圖用叫它:

if(checkHourBetween(12, 18)) 
{ 
//action 
} 

我已經在if聲明中用一個簡單的document.write("Hello World")測試了這個,只是爲了看看它是否正在工作,但沒有得到任何東西。我目前的時間在規定的時間內。

我相信有更好的方法來做到這一點(JavaScript除外),但很想知道我在哪裏寫錯了。

+3

它[對我來說似乎很好](http://jsfiddle.net/cnDnw/)。但請注意,你[可以簡化它](http://jsfiddle.net/cnDnw/1/)。 – 2013-04-29 13:27:03

+2

@ Mathew:它應該工作得很好。如果你喜歡,你可以使用的一個技巧是將你的函數改成一行:'return currentHour> = hourOne && currentHour <= hourTwo;'(因爲該表達式的計算結果爲「true」或「false」,你可以直接返回)。 – 2013-04-29 13:28:18

+2

嘗試在你的函數中加入alert(currentHour);'看看會發生什麼。 – ASGM 2013-04-29 13:28:20

回答

0

就我所見,代碼沒有問題,也許代碼中的其他地方出現錯誤。嘗試在FireFox中使用螢火蟲或Chrome(無需插件)按下F12並檢查控制檯。

function checkHourBetween (hourOne, hourTwo) 
{ 
var date = new Date(); 
var currentHour = date.getHours(); 
console.log("currenthour is:",currentHour); 
console.log("hourOne is:",hourOne); 
console.log("hourTwo is:",hourTwo); 
if (currentHour >= hourOne && currentHour <= hourTwo) 
    { 
     console.log("returning true"); 
     return true; 
    } 
console.log("returning false"); 
return false; 
} 
+0

非常感謝快速回復的人,還有一個問題進一步惡化了事情。 'console.log'對於調試非常有用,我還沒有被顯示過,所以再次感謝javascript新手每個人。 – 2013-04-29 13:46:35