```
PHP獲取當前時間(年,月,日,小時,分,秒)
1echo date( "h:i ");
date
(PHP 3, PHP 4 )
date — 格式化一個本地時間/日期
說明
string date ( string format [, int timestamp])
返回將整數 timestamp 按照給定的格式字串而產生的字符串。如果沒有給出時間戳則使用本地當前時間。
注: 有效的時間戳典型范圍是格林威治時間 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范圍符合 32 位有符號整數的最小值和最大值)。在 Windows 系統中此范圍限制為從 1970 年 1 月 1 日到 2038 年 1 月 19 日。
要將字符串表達的時間轉換成時間戳,應該使用 strtotime()。此外一些數據庫有一些函數將其時間格式轉換成時間戳(例如 MySQL 的 UNIX_TIMESTAMP 函數)。
格式字串可以識別以下字符:
a – “am ” 或 “pm ”
A – “AM ” 或 “PM ”
B – Swatch Internet Time(【譯者注】參見 http://swatch.com/alu_beat/fs_itime.html)
d – 月份中的第幾天,有前導零的 2 位數字,例如 “01 ” to “31 ”
D – 星期中的第幾天,文本表示,3 個字母,例如 “Fri ”
F – 月份,完整的文本格式,例如 “January ”
g – 小時,12 小時格式,沒有前導零,例如 “1 ” 到 “12 ”
G – 小時,24 小時格式,沒有前導零,例如 “0 ” 到 “23 ”
h – 小時,12 小時格式,例如 “01 ” 到 “12 ”
H – 小時,24 小時格式,例如 “00 ” 到 “23 ”
i – 分鐘,例如 “00 ” 到 “59 ”
I(“i”的大寫的字母)- 如果是夏令時則為 “1 “,否則為 “0 ”
j – 月份中的第幾天,沒有前導零,例如 “1 ” 到 “31 ”
l(“L”的小寫字母)- 星期中的第幾天,完整的文本格式,例如 “Friday ”
L – 布爾值表示是否為閏年,例如 “0 ” 或者 “1 ”
m – 月份,例如 “01 ” to “12 ”
M – 月份,文本表示,3 個字母,例如 “Jan ”
n – 月份,沒有前導零,例如 “1 ” 到 “12 ”
O – 與格林威治時間相差的小時數,例如 “+0200 ”
r – RFC 822 格式的日期,例如 “Thu, 21 Dec 2000 16:01:07 +0200 “(PHP 4.0.4新增)
s – 秒數,例如 “00 ” 到 “59 ”
S – 每月天數后面的英文后綴,2 個字符,例如 “st “, “nd “, “rd ” 或者 “th ”
t – 給定月份所應有的天數,例如 “28 ” 到 “31 ”
T – 本機所在的時區,例如 “EST ” 或 “MDT “(【譯者注】在 Windows 下為完整文本格式,例如“Eastern Standard Time”,中文版會顯示“中國標準時間”。)
U – 從 Unix 紀元(January 1 1970 00:00:00 GMT)開始至今的秒數
w – 星期中的第幾天,數字表示,例如 “0 “(星期天)到 “6 ” (Saturday)
W – ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的)
Y – 年份,4 位數字,例如 “1999 ”
y – 年費,2 位數字,例如 “99 ”
z – 年份中的第幾天,例如 “0 ” 到 “365 ”
Z – 時差偏移量的秒數(例如 “-43200 ” 到 “43200 “)。UTC 西邊的時區偏移量總是負的,UTC 東邊的時區偏移量總是正的。
格式字串中不能被識別的字符將原樣顯示。“Z”格式在使用 gmdate() 時總是返回“0”。
例子 1. date() 例子
12echo date ( "l dS of F Y h:i:s A ");echo "July 1, 2000 is on a " . date ( "l ", mktime(0,0,0,7,1,2000));
在格式字串中的字符前加上反斜線來轉義可以避免它被按照上表解釋。如果加上反斜線后的字符本身就是一個特殊序列,那還要轉義反斜線。 例子 2. 在 date() 中轉義字符
echo date( “l \\t\h\e jS “); // 顯示類似于:Saturday the 8th
可以把 date() 和 mktime() 結合使用來得到未來或過去的日期。 例子 3. date() 和 mktime() 例子
123$tomorrow = mktime (0,0,0,date( "m ") ,date( "d ")+1,date( "Y "));$lastmonth = mktime (0,0,0,date( "m ")-1,date( "d "), date( "Y "));$nextyear = mktime (0,0,0,date( "m "), date( "d "), date( "Y ")+1);
注: 由于夏令時的緣故,這種方法比簡單地在時間戳上加減一天或者一個月的秒數更可靠。
一些使用 date() 格式化日期的例子。注意要轉義所有其它的字符,因為目前有特殊含義的字符會產生不需要的結果,而其余字符在 PHP 將來的版本中可能會被用上。當轉義時,注意用單引號以避免類似 \n 的字符變成了換行符。 例子 4. date() Formatting
12345678910/* Today is March 10th, 2001, 5:16:18 pm */$today = date( "F j, Y, g:i a "); // March 10, 2001, 5:16 pm$today = date( "m.d.y "); // 03.10.01$today = date( "j, n, Y "); // 10, 3, 2001$today = date( "Ymd "); // 20010310$today = date( 'h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01$today = date( '\i\t \i\s \t\h\e jS \d\a\y. '); // It is the 10th day.$today = date( "D M j G:i:s T Y "); // Sat Mar 10 15:16:08 MST 2001$today = date( 'H:m:s \m \i\s\ \m\o\n\t\h '); // 17:03:17 m is month$today = date( "H:i:s "); // 17:16:17
要格式化其它語種的日期,應該用 setlocale() 和 strftime() 函數。
參見 getlastmod(),gmdate(),mktime(),strftime() 和 time()。
```