首頁 >後端開發 >PHP問題 >php怎麼用date()轉換時間戳

php怎麼用date()轉換時間戳

PHPz
PHPz原創
2023-03-28 15:56:411607瀏覽

在開發了解 PHP 的過程中,時間戳記(timestamp)和日期(date)都是常常會用到的概念。在處理時間資料時,需要將時間戳記轉換成日期,或將日期轉換成時間戳記。

PHP 提供了多種函數來方便地完成時間戳記和日期之間的轉換。本文將詳細介紹 PHP 中 date() 函數的用法,以及與時間戳記的轉換關係。

時間戳

時間戳記是指一種表示時間的方式,即從某個固定的時間點(通常是1970 年1 月1 日00: 00:00 UTC)開始計算到現在所經過的秒數。在PHP 中,透過呼叫time() 函數,可以取得目前時間的時間戳,如下所示:

$timestamp = time();

date() 函數

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn