在 PHP 中,Unix 時間戳(Unix Timestamp)是從自格林威治時間(GMT+0)西元 1970 年 1 月 1 日 0 點 0 分 0 秒以來的秒數,而台灣時區(GMT+8)需要加八個小時,因此若得到時間戳後需要先進行時區轉換,再進行格式化,以顯示正確的日期及時間。我們要用到 PHP 提供的 DateTime()
類別,裡面的 setTimezone()
方法可以幫助我們轉換時區,再來是 setTimestamp()
方法以將時間戳設定進去,最後再用 format()
方法格式化,我們用標準格式 Y-m-d H:i:s
輸出。
這邊我們用台灣時間 2022 年 1 月 1 日 0 點 0 分 0 秒的時間戳 1640966400 來練習,最後可以得到以下輸出結果:
時間戳:1640966400
台灣時間(GMT+8):2022-01-01 00:00:00
標準時間(GMT+0):2021-12-31 16:00:00
程式碼
<?php
$timestamp = 1640966400; // GMT+0 2021-12-31 16:00:00
$datetime1 = new DateTime();
$datetime2 = new DateTime();
// 台灣時間轉換
$datetime1->setTimezone(new DateTimeZone("Asia/Taipei"));
$datetime1->setTimestamp($timestamp);
$output1 = $datetime1->format("Y-m-d H:i:s");
// 標準時間轉換
$datetime2->setTimezone(new DateTimeZone("UTC"));
$datetime2->setTimestamp($timestamp);
$output2 = $datetime2->format("Y-m-d H:i:s");
?>
時間戳:<?php echo $timestamp ?><br>
台灣時間(GMT+8):<?php echo $output1 ?><br>
標準時間(GMT+0):<?php echo $output2 ?><br>
▲ 精選圖片。
贊助廣告 ‧ Sponsor advertisements
留言區 / Comments
萌芽論壇