(PHP 4, PHP 5)
date — 格式化一個本地時間/日期
返回將整數 timestamp 按照給定的格式字串而產生的字符串。如果沒有給出時間戳則使用本地當前時間。換句話說,timestamp 是可選的,默認值為 time()。
Tip自 PHP 5.1.1 起有幾個有用的常量可用作標準的日期/時間格式來指定 format 參數。
Tip自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了發起該請求時刻的時間戳。
Note:
有效的時間戳典型范圍是格林威治時間 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范圍符合 32 位有符號整數的最小值和最大值)。不過在 PHP 5.1 之前此范圍在某些系統(如 Windows)中限制為從 1970 年 1 月 1 日到 2038 年 1 月 19 日。
Note:
要將字符串表達的時間轉換成時間戳,應該使用 strtotime()。此外一些數據庫有一些函數將其時間格式轉換成時間戳(例如 MySQL 的 » UNIX_TIMESTAMP 函數)。
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 到 366 |
星期 | --- | --- |
W | ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的) | 例如:42(當年的第 42 周) |
月 | --- | --- |
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 數字表示的月份,有前導零 | 01 到 12 |
M | 三個字母縮寫表示的月份 | Jan 到 Dec |
n | 數字表示的月份,沒有前導零 | 1 到 12 |
t | 給定月份所應有的天數 | 28 到 31 |
年 | --- | --- |
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 |
時間 | --- | --- |
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> |
時區 | --- | --- |
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 |
完整的日期/時間 | --- | --- |
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() |
格式字串中不能被識別的字符將原樣顯示。Z 格式在使用 gmdate() 時總是返回 0。
Example #1 date() 例子
<?php
在格式字串中的字符前加上反斜線來轉義可以避免它被按照上表解釋。如果加上反斜線后的字符本身就是一個特殊序列,那還要轉義反斜線。
Example #2 在 date() 中轉義字符
<?php
可以把 date() 和 mktime() 結合使用來得到未來或過去的日期。
Example #3 date() 和 mktime() 例子
<?phpNote:
由于夏令時的緣故,這種方法比簡單地在時間戳上加減一天或者一個月的秒數更可靠。
一些使用 date() 格式化日期的例子。注意要轉義所有其它的字符,因為目前有特殊含義的字符會產生不需要的結果,而其余字符在 PHP 將來的版本中可能會被用上。當轉義時,注意用單引號以避免類似 的字符變成了換行符。
Example #4 date() 格式舉例
<?php
要格式化其它語種的日期,應該用 setlocale() 和 strftime() 函數來代替 date()。
參見 getlastmod(),gmdate(),mktime(),strftime() 和 time()。
新聞熱點
疑難解答