2010-09-08 51 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包含其值是最接近現在小區的指數。