在本教程中,您將學(xué)習(xí)如何在PHP中提取或格式化日期和時間。
PHP date()函數(shù)將時間戳轉(zhuǎn)換為更具可讀性的日期和時間。
計算機(jī)以稱為UNIX時間戳的格式存儲日期和時間,該時間以自Unix紀(jì)元開始(以格林威治標(biāo)準(zhǔn)時間1970年1月1日午夜,即1970年1月1日00:00:00 GMT)開始的秒數(shù)為單位進(jìn)行測量。
由于這種格式對于人類來說是不人性化的,PHP 將時間戳轉(zhuǎn)換為人類可讀的格式,并將日期從您的符號轉(zhuǎn)換為計算機(jī)能夠理解的時間戳。函數(shù)的語法可以使用。
date(format, timestamp)
date()函數(shù)中的format參數(shù)是必需的,用于指定返回的日期和時間的格式。但是,timestamp是可選參數(shù),如果不包括在內(nèi),則將使用當(dāng)前日期和時間。以下語句顯示今天的日期:
<?php $today = date("d/m/Y"); echo $today; ?>測試看看?/?
注意:PHP date()函數(shù)根據(jù)執(zhí)行腳本的Web服務(wù)器的內(nèi)置時鐘返回當(dāng)前日期和時間。
date()函數(shù)的format參數(shù)實(shí)際上是一個可以包含多個字符的字符串,它允許您生成一個包含日期和時間的各種組件的日期字符串,如星期幾、上午或下午等。下面是格式字符串中常用的一些與日期相關(guān)的格式化字符:
d - 表示每月的第幾天;前導(dǎo)為零兩位的數(shù)字(01 或 31)
D - 表示星期幾縮寫(周一到周日)
m - 表示月份,帶有前導(dǎo)零的數(shù)字(01 或 12)
M - 表示月份縮寫(Jan 到 Dec)
y - 用兩位數(shù)字表示年份(08 或 14)
Y - 四位數(shù)字表示年份(2008 或 2014)
可以通過插入其他字符(例如連字符(-),點(diǎn)(.),斜杠(/)或空格)來分隔日期的各個部分,以添加其他視覺格式。
<?php echo date("d/m/Y") . "<br>"; echo date("d-m-Y") . "<br>"; echo date("d.m.Y"); ?>測試看看?/?
提示:您可以使用PHP date()函數(shù)自動更新網(wǎng)站上的版權(quán)聲明,例如:Copyright © 2010-<?php echo date("Y")?>.
同樣,您可以使用以下字符來格式化時間字符串:
h - 以12小時格式表示小時,前導(dǎo)零(01至12)
H - 以24小時格式表示小時,前導(dǎo)零(00至23)
i - 表示分鐘,前導(dǎo)零(00到59)
s - 表示秒,前導(dǎo)零(00到59)
a - 表示小寫的午前和午后(上午或下午)
A - 表示大寫的午前和午后(上午或下午)
以下示例中的PHP代碼以不同的格式顯示日期:
<?php echo date("h:i:s") . "<br>"; echo date("F d, Y h:i:s A") . "<br>"; echo date("h:i a"); ?>測試看看?/?
time()函數(shù)用于獲取當(dāng)前時間作為Unix時間戳(自Unix紀(jì)元開始的秒數(shù):1970年1月1日00:00:00 GMT)。
<?php //執(zhí)行時間:2014-03-05 07:19:18 $timestamp = time(); echo($timestamp); ?>測試看看?/?
上面的示例產(chǎn)生以下輸出。
1394003958
通過將時間戳傳遞給先前引入的date()函數(shù),我們可以將其轉(zhuǎn)換為人類可讀的日期。
<?php $timestamp = 1394003958; echo(date("Y-m-d H:i:s", $timestamp)); ?>測試看看?/?
上面的示例產(chǎn)生以下輸出。
2014-03-05 07:19:18
mktime()函數(shù)用于根據(jù)特定的日期和時間創(chuàng)建時間戳。如果未提供日期和時間,則返回當(dāng)前日期和時間的時間戳。
mktime()函數(shù)的語法可以通過以下方式給出:
mktime(hour, minute, second, month, day, year)
以下示例顯示了與2014年5月10日下午3:20:12相對應(yīng)的時間戳記:
<?php //創(chuàng)建特定日期的時間戳 echo mktime(15, 20, 12, 5, 10, 2014); ?>測試看看?/?
上面的示例產(chǎn)生以下輸出。
1399735212
注意:您可以根據(jù)需要保留任意數(shù)量的參數(shù),而將使用與當(dāng)前時間相對應(yīng)的值。如果省略所有參數(shù),則mktime()函數(shù)將返回與當(dāng)前日期和時間相對應(yīng)的UNIX時間戳,就像time()。
mktime()函數(shù)可用于查找與特定日期相對應(yīng)的工作日名稱。為此,只需在您的時間戳記中使用'l'('L'的小寫)字符,如以下示例所示,它顯示了2014年4月1日這一天:
<?php //獲取特定日期的工作日名稱 echo date('l', mktime(0, 0, 0, 4, 1, 2014)); ?>測試看看?/?
上面的示例產(chǎn)生以下輸出。
Tuesday
mktime()函數(shù)還可用于在特定時間段后的將來查找特定日期。 如以下示例所示,它顯示從當(dāng)前日期起30個月后的日期?
<?php //執(zhí)行日期為2014年3月5日 $futureDate = mktime(0, 0, 0, date("m")+30, date("d"), date("Y")); echo date("d/m/Y", $futureDate); ?>測試看看?/?
上面的示例產(chǎn)生以下輸出。
05/09/2016
請查看PHP日期/時間函數(shù)參考部分,以獲取PHP中所有可用的日期和時間函數(shù)的完整列表。