fbpx

[範例與語法]基礎PHP筆記:日期時間相關函式

PHP日期函式(function)是一個內建預設好的函式,可簡化日期與數據的使用。 日期函式將日期或時間格式化為易於閱讀的格式。 它可以用來顯示文章或檔案上傳、修改的日期,並把更新後的數據記錄在資料庫中。

PHP日期語法與範例Syntax & Example

echo date(format,[timestamp]);
  • date (…) 函式,將會輸入伺服器上當前的時間
  • format 格式,可以設定輸出的格式。例如:YYYY-MM-DD在 PHP 中會是 y-m-d
  • Y年份,M月份, D 天數
  • timestamp 時間戳記,如果沒有指定,PHP將在伺服器上使用php當前日期時間。
<?php
#echo date(format,[timestamp]);
 echo date('y');
#顯示當前時間('年份')
 echo "<br>";
 echo date('y'.'m'.'d');
#顯示當前時間('年份', '月份', '日期')
 echo "<br>";
 echo date('yy'.'年'.'m'.'月'.'d'.'日');
#加上中文
?> 
結果如上

什麼是時間戳記 (Timestamp)

時間戳記(或稱標記)是格林威治標準時間 和1970年1月1日00:00:00(GMT)和當前時間之間相差的秒數。

<?php echo time(); ?>

時間函式回饋給你的的值會根據系統默認時區提供,這個設定你可以在 php.ini 文件中設定。或者透過 date_default_timezone_set 函式方式進行更改。

獲得可用時區清單表

在介紹如何以用程式碼設定默認時區前,先看一下時區清單中都有什麼。

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
foreach($timezone_identifiers as $key => $list){
echo $list . "<br/>";
}
?>
  • $timezone_identifiers = DateTimeZone::listIdentifiers();” 呼叫所有被定義好的時區標示碼(identifiers)
  • 方法 listIdentifiers 會回傳一段常數,並且命名成變數。再透過 “foreach” 穿過所有數字陣列,並呈現輸入如下圖。

PHP 手動編碼設定時區

使用 date_default_timezone_set 函式設置默認時區。整份 PHP 檔案中都會開始採用你所指定的時區。 語法如下:

<?php date_default_timezone_set ( string $timezone_identifier ); ?>
  • 函式 date_default_timezone_set (…) 可指定文件預設時區。或是
  • 函式 date_default_timezone_get (…) 可指定設定特定時區。
  • 字串 $timezone_identifier 則是時區位置,例如:亞洲東京 (“Asia/Tokyo”);
  • 示範如下:
<?php
date_default_timezone_set('America/Los_Angeles');
#將時區設定為美國/洛杉磯
echo "現在時間是 " . date_default_timezone_get() . " 當地時間 " . date("H:i:s");
echo "<br>";
date_default_timezone_set("Asia/Tokyo");
#將時區設定為亞洲/東京
echo "現在時間是 " . date_default_timezone_get() . " 當地時間 " . date("H:i:s");
?>

mktime 獲取時間函式

函式 mktime( ) 可以回傳 unix 格式的時間戳記。語法如下:

#語法 syntax
<?php mktime(hour, minute, second, month, day, year, is_dst); ?>
#範例 example 13/10/2025
<?php echo mktime(0,0,0,10,13,2025); ?>
  • 時間數值都可以選擇性的輸入,13/10/2025 結果如下
1760328000

更多時間函式的參數 (parameters)

<?php echo date("r"); ?>
# 顯示完整時間日期
結果:
16:40:31 Tue, 15 Sep 2020 16:40:31 +0900
<?php
date_default_timezone_set("Asia/Taipei");
#設定時區為台灣/台北
echo date("g"); #顯示時(HR)數值,12小時制 [1-12]
echo date("G"); #顯示時(HR)數值,24小時制 [0-24]
echo date('h'. '點' . 'i'. '分' . 's' . '秒');
#顯示當前時間
?>

年、月、日的時間函式

<?php
date_default_timezone_set("Asia/Taipei");

echo date("Y" . "M" . "d" . "D" );
#Y年份, M月份, d日期, D星期幾
echo "<hr>";
echo date("yy" . "m". "d" . "星期" .  "w");
#yy年份, m月份, d日期, w星期幾(數字)[0-6] 
echo "<hr>";
echo date("z");
#z, 該年中的第幾天[0-365]
echo "<hr>";
echo date('h'. '點' . 'i'. '分' . 's' . '秒');
?>

總結

所有日期函式都會根據 php.ini 文件中設置的預設時區
或者可以透過編碼方式重新設定時間的預設位置。

Leave a Reply

Your email address will not be published. Required fields are marked *