0

状況 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";
4

2 に答える 2

1

このライブラリは、テーブルの日付テキストを実際のJS Date()オブジェクトに解析するのに役立ちます。このオブジェクトは、さらに比較/操作するために使用できます。

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

于 2013-03-13T17:55:18.677 に答える
0

時間範囲の計算を行う必要があるいくつかのプロジェクトでは、moment-range JavaScript ライブラリを使用しました: https://github.com/gf3/moment-range

必要なものを処理できるはずです。ただし、完全な日付と時刻を使用する必要があります。

于 2013-03-13T17:44:32.627 に答える