PHP是一種流行的開源腳本語言,廣泛用於Web開發中。其中,時間戳記是一種非常重要的資料類型,它表示從1970年1月1日0時0分0秒起經過的秒數。在PHP中,將時間字串轉換為時間戳非常方便,本文將介紹一些PHP轉換時間戳記的方法。
方法一:strtotime()
strtotime()函數是PHP中非常方便的時間字串轉換為時間戳記的函數。我們可以透過將一個表示日期和時間的字串傳入該函數來傳回一個對應的時間戳記。這個時間戳記的數值表示自1970年1月1日00:00:00以來經過的秒數。
例如,下面的PHP程式碼將當前日期和時間轉換為時間戳:
echo strtotime("now");
#輸出結果:
1623862003
在上面的程式碼中,我們將字串“ now」傳遞給strtotime()函數。它會將該字串解釋為當前日期和時間,並傳回對應的時間戳記。
同樣,我們可以使用strtotime()函數將任何表示日期和時間的字串轉換為時間戳記。例如,下面的程式碼將一個表示「2022年1月1日」的字串轉換為時間戳記:
echo strtotime("2022-01-01");
輸出結果:
1640947200
在上面的程式碼中,我們將「 2022-01-01”字串傳遞給strtotime()函數。它會將該字串解釋為2022年1月1日零點,並傳回對應的時間戳記。
值得注意的是,strtotime()函數有一些不支援的日期和時間格式。例如,以下格式的時間字串不支援:
在這些情況下,我們需要使用其他方法將時間字串轉換為時間戳記。
方法二:DateTime類別
DateTime類別是PHP 5.2及更高版本中定義的一個核心類,它提供了非常方便的日期和時間操作方法。其中,DateTime類別的createFromFormat()方法可以將日期和時間字串轉換為時間戳記。
例如,下面的PHP程式碼將一個表示「2022年1月1日」的字串轉換為時間戳記:
$datetime = DateTime::createFromFormat('Y-m-d H:i:s', '2022-01-01 00:00:00'); echo $datetime->getTimestamp();
輸出結果:
1640947200
在上面的程式碼中,我們首先透過createFromFormat()方法建立了一個DateTime對象,它將「2022-01-01 00:00:00」解釋為一個日期和時間對象。然後,我們使用DateTime物件的getTimestamp()方法來取得對應的時間戳記。
要注意的是,DateTime::createFromFormat()方法需要兩個參數。第一個參數是日期和時間格式,第二個參數是需要轉換為時間戳記的日期和時間字串。例如,上面程式碼中的「Y-m-d H:i:s」表示日期和時間的格式為「年-月-日 時:分:秒」。
方法三:mktime()函數
mktime()函數也是PHP中非常方便的將日期和時間轉換為時間戳記的函數。與strtotime()函數不同的是,mktime()函數需要我們分別傳入年、月、日、時、分、秒等參數來獲得對應的時間戳記。
例如,下面的PHP程式碼將一個表示「2022年1月1日」的字串轉換為時間戳記:
echo mktime(0, 0, 0, 1, 1, 2022);
輸出結果:
1640947200
在上面的程式碼中,我們使用mktime()函數傳入了年(2022)、月(1)、日(1)、時(0)、分(0)、秒(0)等參數,並傳回對應的時間戳。
需要注意的是,mktime()函數對於無效的日期和時間值(例如2月30日)會傳回-1,因此在使用mktime()函數時需要注意日期和時間的合法性。
總結
本文介紹了三種PHP轉換時間戳記的方法:strtotime()函數、DateTime類別和mktime()函數。其中,strtotime()函數是最方便的一種方法,可以將各種日期和時間字串轉換為時間戳記。而DateTime類別和mktime()函數則提供了更靈活的日期和時間操作方法,可以根據具體情況選擇使用。
以上是php轉成時間戳記的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!