状況 OracleDBから供給された動的テーブルがあります。TIMEStamp / shortTimeである「ScheduledTime」という列があり、その変数はクライアント側のjavascriptデジタル時計と比較されます。scheduleedTime変数が現在の時刻(jsクロック)の特定の時刻内にある場合、テーブル行でアクションを返します。
つまり、「scheduledTime」がcurrentTimeの15分未満の場合、行の色は赤になります。
問題 23:00(11pm)で、2am(翌日)に予定されているアイテムがある場合、ロジックは、「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";