在開發了解 PHP 的過程中,時間戳記(timestamp)和日期(date)都是常常會用到的概念。在處理時間資料時,需要將時間戳記轉換成日期,或將日期轉換成時間戳記。
PHP 提供了多種函數來方便地完成時間戳記和日期之間的轉換。本文將詳細介紹 PHP 中 date() 函數的用法,以及與時間戳記的轉換關係。
時間戳記是指一種表示時間的方式,即從某個固定的時間點(通常是1970 年1 月1 日00: 00:00 UTC)開始計算到現在所經過的秒數。在PHP 中,透過呼叫time() 函數,可以取得目前時間的時間戳,如下所示:
$timestamp = time();
date() 是用來格式化日期的PHP 函數,可以將日期時間以指定的格式輸出。其語法為:
date($format, $timestamp)
其中,$format 為日期輸出格式,$timestamp 是可選參數,代表需要被格式化的時間戳,如果不傳入時間戳,則預設使用當前時間戳。以下是一些常用的格式參數:
參數 | 描述 |
---|---|
Y | 四位數表示的年份 |
m | 以數字表示的月份(有前導零) |
#d | 月份中的第幾天(有前導零) |
H | #小時(24 小時格式,有前導零) |
i | 分鐘數(有前導零) |
#s | 秒鐘數(有前導零) |
w | 星期中的第幾天(0 代表星期天,1 代表星期一,以此類推) |
a | 上午或下午(小寫) |
A | 上午或下午(大寫) |
例如,要將時間戳1609459584 格式化為形如“2021-01-01 12:12:12” 的字串,可以使用以下程式碼:
echo date('Y-m-d H:i:s', 1609459584);
輸出結果為:
2021-01-01 12:12:12
如果我們已經有了一個時間戳,可以使用date() 函數將其轉換為指定格式的日期字串,如下所示:
$timestamp = 1609459584; $datetime = date('Y-m-d H:i:s', $timestamp); echo $datetime;
如果我們有一個日期字串,需要將其轉換為時間戳,可以使用strtotime() 函數。此函數可以將字串時間轉換為 UNIX 時間戳記。
$datetime = '2021-01-01 12:12:12'; $timestamp = strtotime($datetime); echo $timestamp;
輸出結果為:
1609459584
需要注意的是,strtotime() 函數的輸入時間必須是英文日期格式,例如上面的例子中的給出的時間是"2021- 01-01 12:12:12",如果時間格式不正確,函數將會傳回false。
上面介紹的 date() 和 strtotime() 預設使用的是伺服器本地的時間。但有時候需要在處理時間時,使用指定的時區,可以用 date_default_timezone_set() 函數來設定時區。
date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s');
時間格式參數不變,輸出的日期時間會自動轉為東八區時間:
2022-03-15 15:33:57
在PHP 中, timestamp 和date 的轉換是非常常見的操作。透過本文介紹的 date() 函數和 strtotime() 函數,可以方便地完成這些轉換。
使用場景也非常廣泛,例如在網站中發布文章時,我們需要將時間戳轉換為日期,或將人類可讀的日期轉換為時間戳來進行比較。無論在哪個場景中,掌握好這些函數都是非常重要的。
以上是php怎麼用date()轉換時間戳的詳細內容。更多資訊請關注PHP中文網其他相關文章!