2010-09-09 62 views
1

選擇當前時間。如果我使用PHP代碼,如:PHP細胞

for ($i = 1; $i <= 24; $i++) 
{ 
$timetable=strftime("%X", mktime(0, 0, $hour[$i], $month, $day, $year)); 
} 

以獲取當天看起來像時間表:

time | 
---------- 
05:09:23 | 
---------- 
07:23:18 | 
---------- 
11:55:41 | 
---------- 
14:01:32 | 
---------- 

我想強調小區的情況下打印的時間包括:當前時間(如果當前時間是9:23:00,高亮單元格將是打印時間爲07:23:18的單元格,如果當前時間爲13:59:06,高亮單元格將爲11:55:41)

我該怎麼做?

回答

2

使用此功能可以做到這一點:

$thisID = 0; 
for ($i = 1; $i <= 24; $i++) 
{ 
    $tt = mktime(0, 0, $hour[$i], $month, $day, $year); 
    $timetable = strftime("%X", $tt); 

    if($thisID == 0 && (time() - $tt) >= 0) 
     $thisID = $i; 
} 

現在$thisID爲您提供了所需的行。用它來突出顯示行。

+0

謝謝,但我geting這個錯誤「致命錯誤:函數名稱必須是一個字符串」在行中是「if($ time() - $ tt> = 0)」。可能是什麼問題? – Sergio 2010-09-09 20:34:57

+0

因爲我總是得到1 :( – Sergio 2010-09-09 20:43:38

+0

我幾分鐘後更新了代碼,我發佈了它。你有沒有嘗試新的代碼。 – shamittomar 2010-09-10 04:18:21

0

有一個date_diff()函數可以用來確定哪一個最接近。 link date_diff或者,如果此信息來自數據庫,則可以使用數據庫的日期/時間處理函數來返回Now()和作爲列被撤回的日期之間的時間差。

0

最好的辦法做到這一點在我看來是將時間存儲在unix時間戳或從午夜開始秒鐘。通過這種方式,您可以對數據進行排序。

要獲得最接近的記錄,您需要執行2個查詢。

Select time from times where time > $value order by time desc limit 1 
Select time from times where time < $value order by time asc limit 1 

現在將這2個結果與$ value進行比較並返回最接近的一個。

儘管此方法需要2個查詢並使用大於/小於語句,但我認爲ist比檢索所有數據更快。

希望這會有所幫助!