2012-12-27 89 views
0

我對JavaScript/jQuery相當陌生,對我來說很裸露。我有一個名爲「計劃時間」的特定列的數據表,它使用了「時間」變量。我想知道什麼是最簡單的方法來比較表中的預定時間和系統時間,並作爲回報改變行的背景顏色。將數據列值與系統時鐘進行比較

到目前爲止我的代碼

var currentTime = new Date(); /* not sure if this is the correct time object to use */ 
var scheduledTime = scheduledTime(); 

if (scheduledTime >= 15mins) { 
    return 'background-color:red;' 
} else if (scheduledTime > 15mins <= 30mins) { 
    return 'background-color:yellow;' 
} else if (scheduledTime > 30mins <= 2hours) { 
    return 'background-color:green;' 
} else if (scheduledTime > 2hours) { 
    return 'background-color:none; 
} 
+1

好你的第一個,如果會是錯誤的,它將不得不''' – epascarello

回答

0

這應該工作:

var currentTime = new Date(); 
// Assuming scheduledTime()'s output is a "ms since epoch" timestamp. 
var scheduledTime = scheduledTime(); 
var diff = (scheduledTime - currentTime)/1000/60; // Difference in minutes. 

return (diff < 15) /*if(d<15) */ ? 'background-color:red;' 
    : (diff < 30 && diff > 15) ? 'background-color:yellow;' 
    : (diff < 120 && diff > 30) ? 'background-color:green;' 
    : /* else */     'background-color:none;'; 

我使用的是ternary operator作爲簡寫正常if/else - 塊,有。

+0

我甚至不認爲使用分鐘方法的差異。三元運算符是更加簡潔的方式來寫這個腳本約定。我感謝你的時間。 – charlie

+0

Cebrus,我沒有提到我需要這個腳本在24小時的時鐘上運行,這會對比較產生什麼影響 – charlie

+0

@ crh313:它不應該是因爲我們比較時間戳(1970年1月1日以來的毫秒數) – Cerbrus

相關問題