如何找到哪个表格单元格包含最接近当前时间的时间?
使用PHP代码创建时间表,如:
for ($i = 1; $i <= 24; $i++)
{
$timetable=strftime("%X", mktime(0, 0, $hour[$i], $month, $day, $year));
}
使用这个PHP代码,我得到当天的时间表,如:
time |
----------
05:09:23 |
----------
07:23:18 |
----------
11:55:41 |
----------
14:01:32 |
----------
我需要的是改变打印时间最接近当前时间的单元格的背景颜色。
Hos我可以这样做吗?
答案 0 :(得分:2)
使用它来执行此操作:
$max = INF;
for ($i = 1; $i <= 24; $i++)
{
$tabletime = mktime(0, 0, $hour[$i], $month, $day, $year);
$timetable = strftime("%X", $tabletime);
$diff = abs($tabletime - time());
if($diff <= $max)
$minID = $i;
}
现在$minID
为您提供时差最小的行。
答案 1 :(得分:0)
创建两个临时变量。其中一个将是最近的单元格索引,下一个将是单元格索引的值与当前时间之间的差异。 (哦,并存储当前时间。这将使事情变得更容易。)
$nearestTime = null;
$nearestDifference = INF; // infinite
$now = time();
遍历你的细胞,并在它们的价值和现在之间做差异。如果它小于$nearestDifference
,则时间更接近现在。
for ($i = 0; $i < count($cells); $i++)
{
$time = strtotime($cells[i]); // or whatever is more appropriate for you
$difference = abs($time - $now);
if ($difference < $nearestDifference)
{
$nearestDifference = $difference;
$nearestCell = $i;
}
}
在此结束时,$nearestTime
包含其值最接近的单元格的索引。