在PHP中,可以使用date()函數(shù)來獲取當(dāng)前日期和星期幾。只需將date()函數(shù)的第二個(gè)參數(shù)省略,第一個(gè)參數(shù)設(shè)置為“Y-m-d H:i:s”即可獲取當(dāng)前日期,語法“date("Y-m-d H:i:s")”;而當(dāng)?shù)谝粋€(gè)參數(shù)設(shè)置為“N”時(shí)則可獲取是星期幾,語法“date("N")”。“N”可返回ISO-8601格式數(shù)字表示的星期中的第幾天,范圍1(表示星期一)到7(表示星期天)。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8版、DELL G3電腦
在PHP中,可以使用date()函數(shù)來獲取當(dāng)前日期和星期幾。
date()函數(shù)可以獲取當(dāng)前時(shí)間戳,并把該時(shí)間戳格式化為可讀性更好的日期和時(shí)間,設(shè)置是月份、天數(shù)、星期幾也可提取出來。
下面一起來了解一下date()函數(shù),其語法格式為:
date(format,timestamp);
-
format 必需。規(guī)定時(shí)間戳的格式。
-
timestamp 可選。規(guī)定時(shí)間戳。默認(rèn)是當(dāng)前的日期和時(shí)間。
說明:參數(shù)format用于指定格式化字符,設(shè)置轉(zhuǎn)換成的日期格式。主要就是通過format參數(shù)來格式化時(shí)間戳,獲取當(dāng)前日期和星期幾。
示例1:使用date()函數(shù)獲取當(dāng)前日期
<?php header("content-type:text/html;charset=utf-8"); date_default_timezone_set("PRC");//設(shè)置時(shí)區(qū) echo "當(dāng)前時(shí)間為:"; $today = date("Y-m-d H:i:s"); echo $today; ?>
使用date()函數(shù)可以設(shè)置各種輸出日期的格式,例:
<?php header("content-type:text/html;charset=utf-8"); date_default_timezone_set("PRC");//設(shè)置時(shí)區(qū) echo date("Y/m/d H:i:s") . "<br>"; echo date("y/m/d H:i:s") . "<br><br>"; echo date("Y-m-d H:i:s") . "<br>"; echo date("y-m-d H:i:s") . "<br><br>"; echo date("Y.m.d H:i:s") . "<br>"; echo date("y.m.d H:i:s") . "<br><br>"; ?>
示例2:使用date()函數(shù)獲取當(dāng)前星期幾
<?php header("content-type:text/html;charset=utf-8"); date_default_timezone_set("PRC");//設(shè)置時(shí)區(qū) echo "今天是星期 ".date("N"); ?>
看看日歷對(duì)不對(duì)?
說明:date()可以格式化時(shí)間,配合格式化字符“N”獲取星期天數(shù)
-
N:返回ISO-8601 格式數(shù)字表示的星期中的第幾天(PHP 5.1.0 新加),范圍 1(表示星期一)到 7(表示星期天)
擴(kuò)展知識(shí):參數(shù)format可設(shè)置的格式化字符
format 字符 |
說明 | 返回值例子 |
---|---|---|
日 | — | — |
d | 月份中的第幾天,有前導(dǎo)零的 2 位數(shù)字 | 01 到 31 |
D | 星期中的第幾天,文本表示,3 個(gè)字母 | Mon 到 Sun |
j | 月份中的第幾天,沒有前導(dǎo)零 | 1 到 31 |
l("L"的小寫字母) | 星期幾,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式數(shù)字表示的星期中的第幾天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天數(shù)后面的英文后綴,2 個(gè)字符 | st,nd,rd 或者 th??梢院?j 一起用 |
w | 星期中的第幾天,數(shù)字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第幾天 | 0 到 365 |
星期 | — | — |
W | ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的) | 例如:42(當(dāng)年的第 42 周) |
月 | — | — |
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 數(shù)字表示的月份,有前導(dǎo)零 | 01 到 12 |
M | 三個(gè)字母縮寫表示的月份 | Jan 到 Dec |
n | 數(shù)字表示的月份,沒有前導(dǎo)零 | 1 到 12 |
t | 給定月份所應(yīng)有的天數(shù) | 28 到 31 |
年 | — | — |
L | 是否為閏年 | 如果是閏年為 1,否則為 0 |
o | ISO-8601 格式年份數(shù)字。這和 Y 的值相同,只除了如果 ISO 的星期數(shù)(W)屬于前一年或下一年,則用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位數(shù)字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位數(shù)字表示的年份 | 例如:99 或 03 |
時(shí)間 | — | — |
a | 小寫的上午和下午值 | am 或 pm |
A | 大寫的上午和下午值 | AM 或 PM |
B | Swatch Internet 標(biāo)準(zhǔn)時(shí) | 000 到 999 |
g | 小時(shí),12 小時(shí)格式,沒有前導(dǎo)零 | 1 到 12 |
G | 小時(shí),24 小時(shí)格式,沒有前導(dǎo)零 | 0 到 23 |
h | 小時(shí),12 小時(shí)格式,有前導(dǎo)零 | 01 到 12 |
H | 小時(shí),24 小時(shí)格式,有前導(dǎo)零 | 00 到 23 |
i | 有前導(dǎo)零的分鐘數(shù) | 00 到 59> |
s | 秒數(shù),有前導(dǎo)零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函數(shù)總是返回 000000 因?yàn)樗唤邮?integer 參數(shù), 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
時(shí)區(qū) | — | — |
e | 時(shí)區(qū)標(biāo)識(shí)(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否為夏令時(shí) | 如果是夏令時(shí)為 1,否則為 0 |
O | 與格林威治時(shí)間相差的小時(shí)數(shù) | 例如:+0200 |
P | 與格林威治時(shí)間(GMT)的差別,小時(shí)和分鐘之間有冒號(hào)分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本機(jī)所在的時(shí)區(qū) | 例如:EST,MDT(【譯者注】在 Windows 下為完整文本格式,例如"Eastern Standard Time",中文版會(huì)顯示"中國標(biāo)準(zhǔn)時(shí)間")。 |
Z | 時(shí)差偏移量的秒數(shù)。UTC 西邊的時(shí)區(qū)偏移量總是負(fù)的,UTC 東邊的時(shí)區(qū)偏移量總是正的。 | -43200 到 43200 |
完整的日期/時(shí)間 | — | — |
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 紀(jì)元(January 1 1970 00:00:00 GMT)開始至今的秒數(shù) | 參見 time() |
注:format的大小寫的區(qū)分非常重要
<?php var_dump(date('Y-m-d H:i:s', 1616496304)); //H 24小時(shí)制 2021-03-23 18:45:04 var_dump(date('Y-m-d h:i:s', 1616496304)); //h 12小時(shí)制 2021-03-23 06:45:04 ?>
推薦學(xué)習(xí):《PHP視頻教程》