PHP 時間比較:詳細指南
比較 PHP 中的時間可能是一項棘手的任務。本文將全面解釋如何使用各種方法有效比較時間。
當前解決方案的限制
問題中提供的程式碼片段,您嘗試在其中將$NowisTime 與$ThatTime 進行比較失敗,因為比較是在字符串之間進行的。 PHP 的字串比較沒有正確考慮時間差異。
使用時間戳的解決方案
一個可靠的方法是使用mktime() 或strtotime 將兩個時間轉換為時間戳(),然後進行數值戳比較。以下修改後的程式碼示範了這一點:
$ThatTime = "14:08:10"; if (time() >= strtotime($ThatTime)) { echo "ok"; }
在這種情況下,time() 傳回目前時間戳,strtotime() 將 $ThatTime 轉換為時間戳。現在,比較變得簡單且準確。
使用 DateTime 的解決方案(具有時區感知)
PHP 的 DateTime 類別允許進行更複雜的考慮時區的時間比較。以下是如何利用它:
$dateTime = new DateTime($ThatTime); if ($dateTime->diff(new DateTime)->format('%R') == '+') { echo "OK"; }
diff() 方法計算兩個DateTime 物件之間的差異,format() 方法以特定格式傳回它,例如這裡的'%R'表示正差或負差。
以上是如何比較 PHP 中的時間:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!