2013-03-13 115 views
0

情況我有一個來自Oracle DB的動態表。有一個名爲「ScheduledTime」的列,它是TIMEStamp/shortTime,並將該變量與客戶端JavaScript數字時鐘進行比較。如果scheduledTime變量在當前時間(js時鐘)的特定時間內,那麼我們在表格行上返回操作。比較當前日期和將來的日期

也就是說,如果「scheduledTime」是< = currentTime的那麼色彩行爲紅色

問題的15分鐘 當其在23:00(晚上11點),並有計劃在凌晨2點(次日)的項目中,邏輯認爲該項目遲到,因爲它的讀數「2」進一步使錶行顏色變紅。

問題/可能的解決方案 我想我應該在比較TimeStamp日期而不是時間的顏色編碼之前運行一個條件。如果日期是不相等的,然後不執行色邏輯...你有什麼想法..

當前代碼

var t = new Date(); 

for (var i = 1, row; row = tbl.rows[i]; i++) { 
     var hm = row.cells[0].innerText.split(":"); 
     t.setHours(hm[0], hm[1], 0, 0); 
     var r = (t.getTime() - current.getTime())/1000/60/60; 


     if(r <= 0.25) 
      row.className = "Red"; 
     else if (r > 0.25 & r <= 0.5) 
      row.className = "Yellow"; 
     else if (r > 0.5 & r <= 2) 
      row.className = "Green"; 
+1

如果您在不同的日子日期只設置「t」小時和分鐘顯然是不夠的。解析*整個*日期。你有沒有試過你的「可能的解決方案」? – Bergi 2013-03-13 17:41:04

回答

0

在哪裏,我需要做我用moment-時間範圍計算的幾個項目範圍JavaScript庫:https://github.com/gf3/moment-range

它應該能夠處理你所需要的。但是,您需要使用完整的日期和時間。

相關問題