在之前的文章中為大家帶來了《PHP中如何才能將時間日期格式化?怎麼計算時間差? 》,其中詳細的介紹了在PHP中應該怎樣去將時間日期格式化和怎樣計算時間差,本篇文章我們一起來看一看,日期與時間戳的相互轉換,希望對大家有幫助!
在前面的文章(《PHP中獲取時間的方法總結(實例詳解)》)中我們介紹了怎樣獲取時間,也就是時間戳,那麼在PHP中我們要怎麼完成時間戳和日期時間的相互轉換呢?
日期時間轉為時間戳記
#我們可以透過time()
函數來取得時間戳,但是time()函數只能取得不同時區的目前時間的時間戳,範例如下:
<?php $time = time(); echo '当前的时间戳为:'.$time.'<br>'; ?>
輸出結果:
##當我們想要將一個特定的時間轉化為時間戳,我們該怎麼操作呢?這時候我們可以使用strtotime()函數來實作。
<span style="font-size: 16px;">strtotime()<strong></strong></span>
strtotime(字符串形式的时间 [,用来计算返回值的参数])範例如下:
<?php echo time().'<br>';//当前时间的时间戳 echo strtotime('now').'<br>';//使用now获取的时间戳,也就是当前时间戳 echo strtotime("1 September 2021").'<br>';//2021年九月一日的时间戳 echo strtotime("+1 day").'<br>';//当前时间加上一天的时间戳 echo strtotime("+1 week 1 days 1 hours 1 seconds").'<br>';//当前时间加上一周一天一小时一秒的时间戳 echo strtotime("next Thursday").'<br>';//下周四的时间戳 echo strtotime("last Monday").'<br>';//上周一的时间戳 ?>輸出結果:
<span style="font-size: 16px;">mktime()<strong></strong></span>
函數
mktime(指定时间时,指定时间分,指定时间秒,指定时间月,指定时间日,指定时间年)範例如下:
##
<?php echo '当前的时间戳是:'.mktime(); // 没有设置参数则默认取得当前GMT时间 ?>
##取得指定時間2021年10月21日15點0分0秒的UNIX時間戳,範例如下:
<?php echo '2021年10月21日15点0分0秒的时间戳是:'.mktime(15,0,0,10,21,2021); //设置参数表示GMT时间2021年10月21日15点0分0秒 ?>
輸出結果:
由上述範例,也可以透過mktime函數來實現時間日期轉換為時間戳記。
上面介紹了都是日期轉換為時間戳的函數方法,那接下來我們來看一看,時間戳怎麼轉換為我們習慣的時間日期。 時間戳轉換日期時間#時間戳記轉換為日期時間需要用到
date()
date(转化后的时间格式,转化前的时间戳)
其中轉換後的時間格式有很多種,先列出給大家一些:
##H---使用24 小時格式表示小時數,零00 到23
m
---使用兩位數的數字表示目前月份01 到12
##d# ---表示月份中的第幾天,要用兩位數來表示,不到兩位數的話,前面加個0。
Y---使用4 位數表示完整的年份
#s---使用兩位數字表示秒數,零00到59
i---用兩位數字表示分鐘數,零00 到59
接下來用1634799600這個時間戳來實驗一下吧,這個時間戳記是上個範例中,2021年10月21日15點0分0秒的時間戳記。 範例如下:
<?php echo '1634799600转化为日期时间的年份为:',date('Y', 1634799600),'<br/>'; echo '1634799600转化为日期时间的月份为:',date('m', 1634799600),'<br/>'; echo '1634799600转化为日期时间的月内天数为:',date('d', 1634799600),'<br/>'; echo '1634799600转化为日期时间的小时数为:',date('H', 1634799600),'<br/>'; echo '1634799600转化为日期时间的小时内分钟数为:',date('i', 1634799600),'<br/>'; echo '1634799600转化为日期时间的分钟内秒数为:',date('s', 1634799600),'<br/>'; ?>輸出結果:
#可以看出,透過date函數能夠輸出正常的日期時間,但是這樣看仍然不符合我們的日常習慣,只需要將其中的參數結合在一起就可以了,示例如下:
<?php echo '1634799600转化为日期时间为:',date('Y-m-d H:i:s', 1634799600); ?>
輸出結果:
##由此我們便完成了時間戳對日期時間的轉換。
PHP影片教學》進行更多關於PHP知識的學習。
以上是最詳細的教你PHP時間戳與日期時間的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!