PHP 中的時間操作:從H:i 中添加和減去30 分鐘
在PHP 中,處理與時間相關的任務對於各種任務至關重要應用程式。一種常見情況涉及修改格式為「H:i」的時間值。此格式表示以小時和分鐘為單位的時間,例如“10:00”或“13:30”。
要從這些值中加法或減去特定的時間間隔,我們可以使用 strtotime() 和 date( ) 函數。但是,如果初始時間值未正確格式化為時間戳,則可能會出現一些意外行為。
讓我們考慮一個範例,我們的目標是建立兩個新值:$startTime 30 分鐘前$time 和$endTime 30 $time 之後的分鐘,其中$time 的格式為“H:i” 。
下面的程式碼片段最初看起來可能是合理的:
<code class="php">$startTime = date("H:i",strtotime('-30 minutes',$time)); $endTime = date("H:i",strtotime('+30 minutes',$time));</code>
但是,在經過「10:00」時作為$time,我們遇到了意想不到的結果:$ startTime 變成了“00:30”而不是預期的“09:30”,$endTime 變成了“01:30”而不是“10:30”。
關鍵問題在於最初假設 $time 是時間戳記。然而,它只是一個格式為“H:i”的字串。要解決這個問題,我們必須先使用 strtotime() 函數將 $time 轉換為時間戳記。
修正後的程式碼:
<code class="php">$time = strtotime('10:00'); $startTime = date("H:i", strtotime('-30 minutes', $time)); $endTime = date("H:i", strtotime('+30 minutes', $time));</code>
現在,結果與我們的預期一致:$startTime變成“09:30”,$endTime 變成“10:30”。透過確保 $time 從一開始就是一個時間戳,我們可以在 PHP 中執行準確的時間操作。
以上是在 PHP 中處理時間格式時,如何避免意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!