2010-12-21 45 views
7

我試圖寫一個聲明,說:「如果時間是這樣,那麼比那小」。我可以用get hours和get min。不過,我在9點30分之間結合了一些問題。JavaScript:如果時間> = 9:30然後

實施例,

var now = new Date(); 
var hour = now.getHours(); 
var day = now.getDay(); 
var mintues = now.getMinutes(); 

if (day == 0 && hour >= 9 && && mintues >= 30 } && hour <= 11) { 
    document.write(now); 
} 

這僅如果時間是9:30 10.更少之間一旦時鐘命中10分鐘然後< 30和腳本斷裂。

關於如何更好地結合時間函數使這一理論有效的任何想法?

感謝,

+2

我縮進了你的代碼,但是在它的當前狀態下它甚至不會被解析。我建議你看一下https://developer.mozilla.org/en/JavaScript/Guide來學習基礎知識。 – 2010-12-21 21:09:27

回答

6

使用new Date().getTime()返回更容易比較毫秒。這樣就沒有必要檢查小時,分,秒,毫秒Fiddle link

var d930 = new Date(2010, 12, 21, 9, 30, 0, 0), // today 9:30:00:000 
    d931 = new Date(2010, 12, 21, 9, 31, 0, 0), // today 9:31:00:000 
    t930 = d930.getTime(), 
    t931 = d931.getTime(); 


console.log(t931 > t930); 

這樣,你的代碼可以檢查針對靜態9:30時。

var time930 = new Date(2010, 12, 21, 9, 30, 0, 0).getTime(), 
    sunday = 0, 
    now = new Date(); 

if(now.getDay() == sunday && now.getTime() >= time930){ 
    /* do stuff */ 
} 
+0

我只想要靜態的日子。例如,每個星期天。在你的例子中,它是每年的特定日子。你可以怎樣調整它? – 2010-12-22 03:20:51

+0

@ user550495 - 和你一樣。我編輯了答案。 – 2010-12-22 15:58:22

0

試試這個:

var now = new Date(); 
var hour = now.getHours(); 
var mintues = now.getMinutes(); 

if(
     (hour*60 + mintues) > 570 && 
     hour <= 11 
    ) 
{ 
    document.write(now); 
} 
1
if the hour is less than 9, true 
or 
if hour is 9 and minutes lt 30, true 

,這樣看起來就像

if ((hour < 9) || (hour == 9 && minutes < 30)) 

用四個字來找出你的邏輯。符號只是捷徑。

1

一種方法是對日期對象進行直接比較。選擇任意的年,月,日,然後納入如下的時間:

var older = new Date("1980-01-01 12:15"); 
var newer = new Date("1980-01-01 12:30"); 

if (newer > older){ 
    alert("Newer time is newer"); 

} else { 
    alert ("The time is not newer"); 

} 

的MDC documentation on the Date object將一些細節幫助。底線是,如果你想比較時間,你實際上不需要調用對象上的任何方法,並且可以直接比較它們。日期()對象可以採取各種字符串到一個新的時間分配給返回的實例,這些都是從MDC文檔:

today = new Date(); 
birthday = new Date("December 17, 1995 03:24:00"); 
birthday = new Date(1995,11,17); 
birthday = new Date(1995,11,17,3,24,0); 

正如你所看到的,這是很簡單的。不要複雜化,並有通過文檔:)

一看雖然我們在這裏,這裏是使用例如測試:

var base = new Date("1980-01-01 9:30"); 
var test = new Date("1980-01-01 9:30:01"); 

if (test >= base){ 
    alert("test time is newer or equal to base time"); 

} else { 
    alert ("test time is older than 9.30"); 

} 
2

你有幾個錯字和基本的JavaScript錯誤。
可能想刷上基礎。
W3Schools是我學到的知識。 如果你解決這些問題它工作正常... if語句的基本邏輯

var now = new Date(); 
    var hour = now.getHours(); 
    var day = now.getDay(); 
    var minutes = now.getMinutes(); 
    if(day == 0 && hour == 9 && minutes < 30 && minutes > 10 || day == 0 && hour == 9) 
     document.write('Time is between 9:10 and 9:30'); 

思考。
如果日期是星期天(0)
和時針是9
和分鐘大於10 和分鐘小於10 或一天是星期日(0)
和時針是前9.

0

我不完全理解你的問題,但希望這有助於。

c = new Date(); 
nhour = c.getHours(); 
nmin = c.getMinutes(); 

if(nmin <= 9) { 
    nmin = "0" + nmin; 
} 
if(nhour <= 9) { 
    nhour = "0" + nhour; 
} 

newtime = nhour + "" + nmin; 

if(newtime <= 0930){ 
    alert("It is before 9:30am or earlier"); 
} 
2
var now = new Date(); 
    var closeTime = new Date(); 
    closeTime.setHours(9); closeTime.setMinutes(30); 
    console.log(now, closeTime, now.getTime() >= closeTime.getTime()); 

閉時間是根據當今,那麼我們只需更改小時和分鐘至9:30。