首頁 >後端開發 >php教程 >最詳細的教你PHP時間戳與日期時間的轉換

最詳細的教你PHP時間戳與日期時間的轉換

WBOY
WBOY原創
2021-10-21 16:26:555978瀏覽

在之前的文章中為大家帶來了《PHP中如何才能將時間日期格式化?怎麼計算時間差? 》,其中詳細的介紹了在PHP中應該怎樣去將時間日期格式化和怎樣計算時間差,本篇文章我們一起來看一看,日期與時間戳的相互轉換,希望對大家有幫助!

最詳細的教你PHP時間戳與日期時間的轉換

在前面的文章(《PHP中獲取時間的方法總結(實例詳解)》)中我們介紹了怎樣獲取時間,也就是時間戳,那麼在PHP中我們要怎麼完成時間戳和日期時間的相互轉換呢?

日期時間轉為時間戳記

#我們可以透過time()函數來取得時間戳,但是time()函數只能取得不同時區的目前時間的時間戳,範例如下:

<?php
    $time = time();
    echo &#39;当前的时间戳为:&#39;.$time.&#39;<br>&#39;;
?>

輸出結果:

最詳細的教你PHP時間戳與日期時間的轉換

##當我們想要將一個特定的時間轉化為時間戳,我們該怎麼操作呢?這時候我們可以使用strtotime()函數來實作。

  • <span style="font-size: 16px;">strtotime()<strong></strong></span>

strtotime()函數可將英文文字描述的任何字串型的日期轉換為UNIX 時間戳,它的語法格式如下:

strtotime(字符串形式的时间 [,用来计算返回值的参数])

範例如下:


<?php
    echo time().&#39;<br>&#39;;//当前时间的时间戳
    echo strtotime(&#39;now&#39;).&#39;<br>&#39;;//使用now获取的时间戳,也就是当前时间戳
    echo strtotime("1 September 2021").&#39;<br>&#39;;//2021年九月一日的时间戳
    echo strtotime("+1 day").&#39;<br>&#39;;//当前时间加上一天的时间戳
    echo strtotime("+1 week 1 days 1 hours 1 seconds").&#39;<br>&#39;;//当前时间加上一周一天一小时一秒的时间戳
    echo strtotime("next Thursday").&#39;<br>&#39;;//下周四的时间戳
    echo strtotime("last Monday").&#39;<br>&#39;;//上周一的时间戳
?>

輸出結果:


最詳細的教你PHP時間戳與日期時間的轉換

由上述範例能夠看出,透過strtotime函數達到了具體時間轉話時間戳記的問題,接下來在介紹一種更直觀的函數能夠完成具體時間轉化為時間戳記。

  • <span style="font-size: 16px;">mktime()<strong></strong></span>函數

mktime()函數能夠傳回指定時間的時間戳,並且比strtotime函數要直觀一些。它的語法格式如下:


mktime(指定时间时,指定时间分,指定时间秒,指定时间月,指定时间日,指定时间年)

範例如下:

##

<?php
echo &#39;当前的时间戳是:&#39;.mktime();  // 没有设置参数则默认取得当前GMT时间
?>

輸出結果:


##取得指定時間2021年10月21日15點0分0秒的UNIX時間戳,範例如下:最詳細的教你PHP時間戳與日期時間的轉換

<?php
echo &#39;2021年10月21日15点0分0秒的时间戳是:&#39;.mktime(15,0,0,10,21,2021);  //设置参数表示GMT时间2021年10月21日15点0分0秒
?>

輸出結果:


由上述範例,也可以透過mktime函數來實現時間日期轉換為時間戳記。 最詳細的教你PHP時間戳與日期時間的轉換

上面介紹了都是日期轉換為時間戳的函數方法,那接下來我們來看一看,時間戳怎麼轉換為我們習慣的時間日期。

時間戳轉換日期時間

#時間戳記轉換為日期時間需要用到
date()

函數,這個函數用來把時間日期格式化,格式化的過程其實也可以看成是轉換的過程。 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 &#39;1634799600转化为日期时间的年份为:&#39;,date(&#39;Y&#39;, 1634799600),&#39;<br/>&#39;;
echo &#39;1634799600转化为日期时间的月份为:&#39;,date(&#39;m&#39;, 1634799600),&#39;<br/>&#39;;
echo &#39;1634799600转化为日期时间的月内天数为:&#39;,date(&#39;d&#39;, 1634799600),&#39;<br/>&#39;;
echo &#39;1634799600转化为日期时间的小时数为:&#39;,date(&#39;H&#39;, 1634799600),&#39;<br/>&#39;;
echo &#39;1634799600转化为日期时间的小时内分钟数为:&#39;,date(&#39;i&#39;, 1634799600),&#39;<br/>&#39;;
echo &#39;1634799600转化为日期时间的分钟内秒数为:&#39;,date(&#39;s&#39;, 1634799600),&#39;<br/>&#39;;
?>

輸出結果:


#可以看出,透過date函數能夠輸出正常的日期時間,但是這樣看仍然不符合我們的日常習慣,只需要將其中的參數結合在一起就可以了,示例如下:

<?php
echo &#39;1634799600转化为日期时间为:&#39;,date(&#39;Y-m-d H:i:s&#39;, 1634799600);
?>

輸出結果:最詳細的教你PHP時間戳與日期時間的轉換

##由此我們便完成了時間戳對日期時間的轉換。

大家如果有興趣的話,可以點選《

PHP影片教學最詳細的教你PHP時間戳與日期時間的轉換》進行更多關於PHP知識的學習。

以上是最詳細的教你PHP時間戳與日期時間的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn