2013-03-13 174 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

它应该能够处理你所需要的。但是,您需要使用完整的日期和时间。