系統整理 date() 格式字元、常用日期時間函數、時區設定、時間戳轉換實例。
| 字元 | 說明 | 範例 |
|---|---|---|
| a | am/pm 小寫 | am |
| A | AM/PM 大寫 | PM |
| d | 日期,雙位數補零 | 01-31 |
| D | 星期縮寫 | Mon-Sun |
| F | 月份全名 | January |
| h | 12小時制,雙位數 | 01-12 |
| H | 24小時制,雙位數 | 00-23 |
| g | 12小時制,不補零 | 1-12 |
| G | 24小時制,不補零 | 0-23 |
| i | 分鐘 | 00-59 |
| j | 日期,不補零 | 1-31 |
| l | 星期全名 | Monday |
| L | 是否閏年 | 1/0 |
| m | 月份,雙位數補零 | 01-12 |
| n | 月份,不補零 | 1-12 |
| M | 月份縮寫 | Jan |
| s | 秒 | 00-59 |
| S | 英文序數後綴 | st, nd, rd, th |
| t | 該月天數 | 28-31 |
| U | Unix 時間戳 | 1428336000 |
| w | 星期數值 | 0(日)-6(六) |
| Y | 四位數年份 | 2015 |
| y | 兩位數年份 | 15 |
| z | 一年中的第幾天 | 0-365 |
// 設定時區 (PHP 5.1+)
date_default_timezone_set('PRC'); // 或 Asia/Shanghai
// php.ini 永久設定
// date.timezone = PRC
echo date('Y-m-d H:i A'); // 2015-04-07 10:10 AM
echo strtotime('2015-04-07'); // 1428336000
echo date('Y-m-d', strtotime('+3 day')); // 2015-04-10
echo date('Y-m-d', strtotime('next year')); // 2016-04-10
echo date('Y-m-d', strtotime('last Monday'));
echo gmdate("Y-m-d", 1428336000); // 2015-04-06 (UTC)
echo gmdate("Y-m-d H:i:s A", mktime(0,0,0,8,18,2018));
// 2018-08-17 16:00:00 PM (UTC)
echo checkdate(13,10,2016) ? "True":"False"; // False echo checkdate(12,10,2016) ? "True":"False"; // True
print_r(getdate(time()));
/*
Array(
[seconds] => 37, [minutes] => 10, [hours] => 16,
[mday] => 7, [wday] => 2, [mon] => 4, [year] => 2015,
[yday] => 96, [weekday] => Tuesday, [month] => April, [0] => 1428394237
)*/
date_default_timezone_set('Asia/Shanghai') 最可靠INT UNSIGNED Unix 時間戳 或 DATETIME$diff = $end - $start (秒),再換算天/時/分掌握這些函數與格式字元,應對絕大多數日期時間處理需求。