PHP 日期詳細介紹
- 2021 年 12 月 1 日
- 筆記
簡介
你可以使用這些函數獲取運行 PHP 的伺服器的日期和時間, 也可以使用這些函數把日期和時間 格式化成不同格式的字元串。
日期和時間資訊在 PHP 內部是以 64 位數字存儲的, 它可以覆蓋當前時間前後 2920 億年的時間,這個範圍之廣,足以滿足現有應用的實際需求。
date()
函數
PHP date() 函數可把時間戳格式化為可讀性更好的日期和時間。
Tip時間戳是一個字元序列,表示一定的事件發生的日期/時間。
語法
string date ( string $format [, int $timestamp ] )
參數 | 描述 |
---|---|
format | 必需。規定時間戳的格式。 |
timestamp | 可選。規定時間戳。默認是當前的日期和時間。 |
PHP Date() – 格式化日期
date() 函數的第一個必需參數 format 規定了如何格式化日期/時間。
這裡列出了一些可用的字元:
- d – 代表月中的天 (01 – 31)
- m – 代表月 (01 – 12)
- Y – 代表年 (四位數)
如需了解 format 參數中可用的所有字元列表,請查閱我們的 PHP Date 參考手冊php-ref-date),date() 函數。
可以在字母之間插入其他字元,比如 “/”、”.” 或者 “-“,這樣就可以增加附加格式了:
<?php echo date("Y/m/d") . "<br>"; echo date("Y.m.d") . "<br>"; echo date("Y-m-d"); ?>
上面程式碼的輸出如下所示:
2016/10/21 2016.10.21 2016-10-21
格式字串可以識別以下 format 參數的字元串:
日
format 字元 | 說明 | 返回值例子 |
---|---|---|
d | 月份中的第幾天,有前導零的 2 位數字 | 01 到 31 |
D | 星期中的第幾天,文本表示,3 個字母 | Mon 到 Sun |
j | 月份中的第幾天,沒有前導零 | 1 到 31 |
l(”L”的小寫字母) | 星期幾,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式數字表示的星期中的第幾天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天數後面的英文後綴,2 個字元 | st,nd,rd 或者 th。可以和 j 一起用 |
w | 星期中的第幾天,數字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第幾天 | 0 到 365 |
星期
format 字元 | 說明 | 返回值例子 |
---|---|---|
W | ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的) | 例如:42(當年的第 42 周) |
月
format 字元 | 說明 | 返回值例子 |
---|---|---|
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 數字表示的月份,有前導零 | 01 到 12 |
M | 三個字母縮寫表示的月份 | Jan 到 Dec |
n | 數字表示的月份,沒有前導零 | 1 到 12 |
t | 給定月份所應有的天數 | 28 到 31 |
年
format 字元 | 說明 | 返回值例子 |
---|---|---|
L | 是否為閏年 | 如果是閏年為 1,否則為 0 |
o | ISO-8601 格式年份數字。這和 Y 的值相同,只除了如果 ISO 的星期數(W)屬於前一年或下一年,則用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位數字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位數字表示的年份 | 例如:99 或 03 |
時間
format 字元 | 說明 | 返回值例子 |
---|---|---|
a | 小寫的上午和下午值 | am 或 pm |
A | 大寫的上午和下午值 | AM 或 PM |
B | Swatch Internet 標準時 | 000 到 999 |
g | 小時,12 小時格式,沒有前導零 | 1 到 12 |
G | 小時,24 小時格式,沒有前導零 | 0 到 23 |
h | 小時,12 小時格式,有前導零 | 01 到 12 |
H | 小時,24 小時格式,有前導零 | 00 到 23 |
i | 有前導零的分鐘數 | 00 到 59> |
s | 秒數,有前導零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函數總是返回 000000 因為它只接受 integer 參數, 而 DateTime::format() 才支援毫秒。 | 示例: 654321 |
時區
format 字元 | 說明 | 返回值例子 |
---|---|---|
e | 時區標識(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否為夏令時 | 如果是夏令時為 1,否則為 0 |
O | 與格林威治時間相差的小時數 | 例如:+0200 |
P | 與格林威治時間(GMT)的差別,小時和分鐘之間有冒號分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本機所在的時區 | 例如:EST,MDT(【譯者注】在 Windows 下為完整文本格式,例如”Eastern Standard Time”,中文版會顯示”中國標準時間”)。 |
Z | 時差偏移量的秒數。UTC 西邊的時區偏移量總是負的,UTC 東邊的時區偏移量總是正的。 | -43200 到 43200 |
完整的日期或時間
format 字元 | 說明 | 返回值例子 |
---|---|---|
c | ISO 8601 格式的日期(PHP 5 新加) | 2004-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
U | 從 Unix 紀元(January 1 1970 00:00:00 GMT)開始至今的秒數 | 參見 time() |
完整的 PHP Date 參考手冊
如需查看所有日期函數的完整參考手冊,請訪問 完整的 PHP Date 參考手冊。
該參考手冊提供了每個函數的簡要描述和應用實例!
PHP Date/Time 函數
函數 | 描述 |
---|---|
checkdate() | 驗證格利高里日期。 |
date_add() | 添加日、月、年、時、分和秒到一個日期。 |
date_create_from_format() | 返回一個根據指定格式進行格式化的新的 DateTime 對象。 |
date_create() | 返回一個新的 DateTime 對象。 |
date_date_set() | 設置一個新的日期。 |
date_default_timezone_get() | 返回默認時區,被所有的 Date/Time 函數使用。 |
date_default_timezone_set() | 設置默認時區,被所有的 Date/Time 函數使用。 |
date_diff() | 返回兩個日期間的差值。 |
date_format() | 返回根據指定格式進行格式化的日期。 |
date_get_last_errors() | 返回日期字元串中的警告/錯誤。 |
date_interval_create_from_date_string() | 從字元串的相關部分建立一個 DateInterval。 |
date_interval_format() | 格式化時間間隔。 |
date_isodate_set() | 設置 ISO 日期。 |
date_modify() | 修改時間戳。 |
date_offset_get() | 返回時區偏移。 |
date_parse_from_format() | 根據指定的格式返回一個帶有指定日期的詳細資訊的關聯數組。 |
date_parse() | 返回一個帶有指定日期的詳細資訊的關聯數組。 |
date_sub() | 從指定日期減去日、月、年、時、分和秒。 |
date_sun_info() | 返回一個包含有關指定日期與地點的日出/日落和黃昏開始/黃昏結束的資訊的數組。 |
date_sunrise() | 返回指定日期與地點的日出時間。 |
date_sunset() | 返回指定日期與地點的日落時間。 |
date_time_set() | 設置時間。 |
date_timestamp_get() | 返回 Unix 時間戳。 |
date_timestamp_set() | 設置基於 Unix 時間戳的日期和時間。 |
date_timezone_get() | 返回給定 DateTime 對象的時區。 |
date_timezone_set() | 設置 DateTime 對象的時區。 |
date() | 格式化本地日期和時間。 |
getdate() | 返回某個時間戳或者當前本地的日期/時間的日期/時間資訊。 |
gettimeofday() | 返回當前時間。 |
gmdate() | 格式化 GMT/UTC 日期和時間。 |
gmmktime() | 返回 GMT 日期的 UNIX 時間戳。 |
gmstrftime() | 根據區域設置格式化 GMT/UTC 日期和時間。 |
idate() | 格式化本地時間/日期為整數。 |
localtime() | 返回本地時間。 |
microtime() | 返回當前 Unix 時間戳的微秒數。 |
mktime() | 返回一個日期的 Unix 時間戳。 |
strftime() | 根據區域設置格式化本地時間/日期。 |
strptime() | 解析由 strftime() 生成的時間/日期。 |
strtotime() | 將任何英文文本的日期或時間描述解析為 Unix 時間戳。 |
time() | 返回當前時間的 Unix 時間戳。 |
timezone_abbreviations_list() | 返回包含夏令時、偏移量和時區名稱的關聯數組。 |
timezone_identifiers_list() | 返回帶有所有時區標識符的數值數組。 |
timezone_location_get() | 返回指定時區的位置資訊。 |
timezone_name_from_abbr() | 根據時區縮略語返回時區名稱。 |
timezone_name_get() | 返回時區的名稱。 |
timezone_offset_get() | 返回相對於 GMT 的時區偏移。 |
timezone_open() | 創建一個新的 DateTimeZone 對象。 |
timezone_transitions_get() | 返回時區的所有轉換。 |
timezone_version_get() | 返回時區資料庫的版本。 |