比较当前日期和未来日期

时间:2013-03-13 17:34:10

标签: javascript

情况我有一个源自Oracle DB的动态表。有一个名为“ScheduledTime”的列是TIMEStamp / shortTime,该变量与客户端javascript数字时钟进行比较。如果scheduledTime变量在当前时间(js clock)的特定时间内,那么我们将在表行返回操作。

即如果“scheduledTime”是< = 15mins of currentTime,则颜色为红色

问题 当它的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";

2 个答案:

答案 0 :(得分:1)

此库将帮助您将表中的日期文本解析为可用于进一步比较/操作的真实JS Date()对象:

https://code.google.com/p/datejs/#Parsing

答案 1 :(得分:0)

在我需要进行时间范围计算的几个项目中,我使用了时间范围的JavaScript库:https://github.com/gf3/moment-range

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