在之前的文章中給大家?guī)砹恕禤HP中獲取時(shí)間的方法總結(jié)(實(shí)例詳解)》,其中詳細(xì)的給大家介紹了PHP中獲取時(shí)間的5種方法,本篇文章我們繼續(xù)來看一看PHP中應(yīng)該怎樣去將時(shí)間日期格式化和怎樣去計(jì)算時(shí)間差,希望對(duì)大家有幫助!
在PHP中,可以使用UNIX作為時(shí)間戳的標(biāo)準(zhǔn)格式,但是他并不容易閱讀,一個(gè)字符串不符合我們的閱讀習(xí)慣。這時(shí)候我們就需要把UNIX時(shí)間戳格式化,變成我們習(xí)慣的閱讀方式,格式化也可以變?yōu)槠渌浖枰母袷健?/p>
date()
時(shí)間日期格式化
在PHP中,我們有date()函數(shù)用于格式化一個(gè)時(shí)間或日期,它的函數(shù)語法格式如下:
date(格式化后的時(shí)間格式,待格式化的時(shí)間戳)
其中,格式化之后的時(shí)間格式可以通過擁有特殊含義的字符來表示,示例如下:
d
—表示月份中的第幾天,要用兩位數(shù)來表示,不足兩位數(shù)的話,前面加個(gè)0。
<?php // 設(shè)定要用的時(shí)區(qū) date_default_timezone_set('Asia/ShangHai'); echo date("d"); ?>
今天是21號(hào),輸出結(jié)果:
D
—表示英文星期幾的縮寫。
<?php // 設(shè)定要用的時(shí)區(qū) date_default_timezone_set('Asia/ShangHai'); echo date("D"); ?>
今天是周四,輸出結(jié)果:
F
—表示月份的英文單詞
<?php // 設(shè)定要用的時(shí)區(qū) date_default_timezone_set('Asia/ShangHai'); echo date("F"); ?>
今天是十月份,輸出結(jié)果:
還有很多特殊的字符,下面列舉一些:
t
—指定月份的天數(shù) 28 到 31
M
—月份的英文縮寫 Jan 到 Dec
n
—使用數(shù)字表示當(dāng)前月份 1 到 12
g
—使用 12 小時(shí)格式表示小時(shí)數(shù) 1 到 12
G
—使用 24 小時(shí)格式表示小時(shí)數(shù) 0 到 23
z
—使用數(shù)字表示一年中的第幾天 0 到 365
m
—使用兩位的數(shù)字表示當(dāng)前月份 01 到 12
s
—使用兩位數(shù)字表示秒數(shù),有前導(dǎo)零 00 到 59>
i
—使用兩位數(shù)字表示分鐘數(shù),有前導(dǎo)零 00 到 59>
h
—使用 12 小時(shí)格式表示小時(shí)數(shù),有前導(dǎo)零 01 到 12
H
—使用 24 小時(shí)格式表示小時(shí)數(shù),有前導(dǎo)零 00 到 23
N
—使用數(shù)字表示星期中的第幾天 ,其中1表示星期一,7表示星期日。
w
—使用數(shù)字表示星期中的第幾天 0(表示星期天)到 6(表示星期六)
可以結(jié)合在一起,示例如下:
<?php // 設(shè)定要用的時(shí)區(qū) date_default_timezone_set('Asia/ShangHai'); echo date("t"); echo "<br/>"; echo date("M"); echo "<br/>"; echo date("n"); echo "<br/>"; echo date("g"); echo "<br/>"; echo date("G"); echo "<br/>"; echo date("z"); echo "<br/>"; echo date("m"); echo "<br/>"; echo date("s"); ?>
輸出結(jié)果:
經(jīng)過上面的實(shí)例,我們知道可以通過date函數(shù)中的不同參數(shù),來對(duì)時(shí)間進(jìn)行格式化。
接下來我們來學(xué)習(xí)一下,應(yīng)該怎樣通過PHP來計(jì)算時(shí)間差,可以當(dāng)作一個(gè)拓展知識(shí)。
PHP計(jì)算時(shí)間差
在開發(fā)過程中,可能會(huì)遇到的情況比如,創(chuàng)建這個(gè)用戶已經(jīng)多長(zhǎng)時(shí)間了,登陸網(wǎng)站已經(jīng)多久了或者計(jì)算生日。出現(xiàn)這樣的情況時(shí),我們就需要去計(jì)算兩個(gè)時(shí)間之間的時(shí)間差。
在PHP中,我們可以通過把兩個(gè)日期轉(zhuǎn)換成時(shí)間戳來計(jì)算時(shí)間差,這時(shí)候就要用到我們上一篇文章中講到的mktime函數(shù)。(點(diǎn)擊這里《PHP中獲取時(shí)間的方法總結(jié)(實(shí)例詳解)》能夠看到上一篇中有關(guān)于mktime函數(shù)的用法)
示例如下:
<?php //2000年3月26日0點(diǎn)0分0秒 $a = mktime(0,0,0,3,26,2000); //2021年10月21日14點(diǎn)10分0秒 $b = mktime(14,10,0,10,21,2021); $diff_seconds = $b - $a; //一周的秒數(shù)是 24*60*60*7=604800 秒 $diff_weeks = floor($diff_seconds/604800); //一天的秒數(shù)是 24*60*60=86400 $diff_days = floor($diff_seconds/86400); //一小時(shí)的秒數(shù)是 60*60=3600 $diff_hours = floor($diff_seconds/3600); //一分鐘的秒數(shù)是 60 $diff_minutes = floor($diff_seconds/60); echo "2000-3-26 0:0:0 和 2021-10-21 14:10:0 之間相差:<br />". "$diff_seconds 秒<br />". "$diff_weeks 個(gè)星期<br />". "$diff_days 天<br />". "$diff_hours 個(gè)小時(shí)<br />". "$diff_minutes 分鐘<br />"; ?>
輸出結(jié)果:
如此,我們便完成了如何計(jì)算兩個(gè)時(shí)間之間的時(shí)間差。
大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行