情况 我有一个来自 Oracle 数据库的动态表。有一个名为“ScheduledTime”的列,它是一个 TIMEStamp/shortTime,并且该变量与客户端 JavaScript 数字时钟进行比较。如果 scheduleTime 变量在当前时间(js 时钟)的特定时间范围内,则我们在表行上返回操作。
即如果“scheduledTime”<=currentTime 的 15 分钟,则将行着色为红色
问题 当它的 23:00(晚上 11 点)并且有一个项目安排在凌晨 2 点(第二天)时,逻辑认为该项目迟到了,因为它的读数为“2”,而且表格行颜色为红色。
问题/可能的解决方案 我想我应该在颜色编码之前运行一个条件,以比较时间戳日期而不是时间。如果日期不相等,则不要执行颜色逻辑......你的想法是什么......
当前代码
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";