我有一个数据表,其中有一个名为“ scheduled time”的特定列,该表正在使用“ Time”变量。我想知道将表中的计划时间与系统时间进行比较的最简单方法,然后更改该行的背景颜色。

到目前为止我的代码

var currentTime = new Date(); /* not sure if this is the correct time object to use */
var scheduledTime = scheduledTime();

if (scheduledTime >= 15mins) {
  return 'background-color:red;'
} else if (scheduledTime > 15mins <= 30mins) {
  return 'background-color:yellow;'
} else if (scheduledTime > 30mins <= 2hours) {
  return 'background-color:green;'
} else if (scheduledTime > 2hours) {
  return 'background-color:none;
}

最佳答案

这应该工作:

var currentTime = new Date();
// Assuming scheduledTime()'s output is a "ms since epoch" timestamp.
var scheduledTime = scheduledTime();
var diff = (scheduledTime - currentTime) / 1000 / 60; // Difference in minutes.

return (diff < 15) /*if(d<15) */ ? 'background-color:red;'
     : (diff < 30  && diff > 15) ? 'background-color:yellow;'
     : (diff < 120 && diff > 30) ? 'background-color:green;'
     : /* else */                  'background-color:none;';


我使用ternary operator作为普通if/else块的简写。

08-17 06:47