2012-06-30 35 views
0

例如,我正在製作一個HTML表格,該表格應該根據使用JavaScript的時間隱藏某些部分;在當前時間使用JavaScript比較運算符

6:30
6:45
7:05

噹噹前時間等於或大於6:30第一小區應隱藏更大。

我開始這樣做的方式是;

var now = new Date(); //創建日期對象
var h = now.getHours(); //獲取當前小時
var m = now.getMinutes(); //獲得當前分鐘

然後; 。

如果(H> = 6 & & M> = 30){
$( '表#truetable TR:第一')隱藏();
}

這並不工作(我認爲這個問題是在最後一部分),因爲它不會隱藏假設7:25爲分鐘數那麼是不是這個(第一)小區大於30,這意味着這種方式在許多其他情況下不起作用。

我可以解決這個問題嗎?我需要另一種方式嗎?

+0

你是什麼意思_ 「我認爲」 _?你把'console.log(h); console.log(m)'查看值? – gdoron

+0

我看到了這些值,它們與現在的24小時格式相同,爲什麼? –

回答

2

以分鐘比較:

if(h*60+m/*h:m*/ >= 6*60+30/*6:30*/){ 
} 
1

最簡單的方法是處理案件時,它的另6點:

if (h > 6 || (h == 6 && m >= 30)) { 
    // Modify DOM 
} 
1

我寫了一個函數來轉換一次在hh:mm或格式爲hh:mm:ss秒。您可以在下面找到它:

function hourConvert(str) { 
    //this separates the string into an array with two parts, 
    //the first part is the hours, the second the minutes 
    //possibly the third part is the seconds 
    str = str.split(":"); 

    //multiply the hours and minutes respectively with 3600 and 60 
    seconds = str[0] * 3600 + str[1] * 60; 

    //if the there were seconds present, also add them in 
    if (str.length == 3) seconds = seconds + str[2]; 

    return seconds; 
} 

現在很容易互相比較時間:

if (hourConvert(str) > hourConvert("6:30")) //Do Stuff 

看到它在行動:http://jsfiddle.net/TsEdv/1/

+0

鏈接不是答案。請在這裏寫下你的答案,而不是在別的地方。謝謝。 – gdoron

1
var t = new Date() 
undefined 
t.getHours() 
20 
t.getHours()>=6 
true 
h = t.getMinutes() 
51 
t>=30 
true 

這並不工作。你的問題是你正在檢查時間和分鐘,這意味着如果分鐘小於30分鐘,它將返回錯誤。

你如果翻譯成:

any hour bigger than six whose minutes are also bigger than 30 

你如果條件應該是:

if(h>=6 && m>=30 || h>=7) 

或數只

if(h*60+m>= 390)