2010-09-08 46 views
0

我怎样才能找到什么表格单元格包含最接近当前时间的时间?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 | 
---------- 

,我需要的是改变事情

的时间表使用PHP代码像创建打印时间与当前时间最接近的单元格的背景颜色。

我可以这样做吗?

回答

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为您提供了具有最低的时间差的行。

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包含其值是最接近现在小区的指数。