在之前的文章中給大家帶來了《PHP中應該怎樣去完成時區的設置?》,其中給大家介紹了怎樣在PHP中設置時區的幾種方法,本篇文章我們繼續來看一看PHP的相關知識,我們在PHP中應該如何獲取當前的時間,希望對大家有幫助!
在PHP中的日期和時間函數里,想要獲取到當前的時間,我們就需要了解什么是UNIX時間戳。
UNIX 時間戳表示的是,自1970年1月1日0時0分0秒(格林尼治時間)起到現在時刻的總秒數。下面就給大家介紹一下可以獲取當前時間的幾種函數
-
time()
函數
time()函數算是最簡單的一個獲取當前時間的函數了,它能夠返回當前時間的UNIX時間戳。示例如下:
<?php echo time(); ?>
當我運行函數時的時間在2021年10月21日10時50分左右,輸出結果如下:
-
mktime()
函數
mktime()函數不僅能夠返回當前時間的UNIX時間戳,也可以返回指定時間的UNIX時間戳,它的語法格式如下:
mktime(指定時間時,指定時間分,指定時間秒,指定時間月,指定時間日,指定時間年)
該函數的參數可以從右向左省略,任何省略的參數會被設置成本地日期和時間的當前值。
獲得當前時間的UNIX時間戳,示例如下:
<?php echo mktime(); // 沒有設置參數則默認取得當前GMT時間 ?>
輸出結果:
獲得指定時間的UNIX時間戳,示例如下:
<?php echo mktime(11,0,0,10,21,2021); //設置參數表示GMT時間2021年10月21日11點0分0秒 ?>
輸出結果:
-
gmmktime()
函數
gmmktime() 函數一樣也可取得 GMT 日期的 UNIX 時間戳,它的語法格式如下:
gmmktime(指定時間時,指定時間分,指定時間秒,指定時間月,指定時間日,指定時間年)
它和mktime一樣可以從右向左省略,任何省略的參數都會被設置成本地日期的當前值。
示例如下:
<?php echo gmmktime(); //沒有設置參數, 則默認取得當前GMT時間 ?>
輸出結果:
由上述示例看出,當所有參數省略后,參數都被設置成了當前時區當前時間的參數,因此輸出了當前時間的UNIX時間戳。
<?php echo gmmktime(0,0,0,10,21,2021); ?>
輸出結果:
由上述示例能夠看出,通過gmmktime()函數可以獲取指定時間的UNIX時間戳。
-
microtime()
函數
microtime()函數可以返回當前UNIX時間戳的微秒數,它的語法如下:
microtime ($get_as_float )
示例如下:
<?php echo microtime(); ?>
輸出結果:
由上述示例看出,通過microtime函數可以輸出微秒數,但是輸出結果的格式是,前面的表示當前UNIX時間戳的微秒部分,后面的表示為當前UNIX時間戳的秒數。
雖然通過microtime函數能夠顯示了更細膩的微秒數,但是看著實在不怎么好看,那有沒有辦法能夠直觀地看到微秒數呢?
我們可以通過函數后面的參數設置,將microtime函數后面的參數設置為true,那么就會返回一個浮點型的字符串來表示時間。
示例如下:
<?php echo microtime(true); //返回一個浮點型字符串表示時間 ?>
輸出結果:
由上述示例能夠看出,通過函數后面參數的設置,可以更直觀的返回當前的時間。
-
getdate()
函數
我們前面介紹了這么多的函數都能夠獲取當前的時間或者指定的時間的UNIX時間戳,getdate函數就比較厲害了,他可以取得日期時間信息。它的語法格式如下:
array getdate ([ int $timestamp = time() ] )
簡單來說,getdate函數能夠根據參數的信息返回一個關聯數組,這個數組中包含了很多元素,下面給大家列舉一下:
-
seconds
—表示秒的數字 -
minutes
—表示分鐘的數字 -
hours
—表示小時的數字 -
mday
—表示月份中第幾天的數字 -
wday
—星期中第幾天的數字 -
mon
—表示月份中第幾個月的數字 -
year
—用4 位數字表示的完整年份 -
yday
—表示一年中第幾天的數字 -
weekday
—表示星期幾的英文 -
month
—表示月份的英文 -
0
—表示自從 UNIX 紀元開始至今的秒數
示例如下:
<?php echo "<pre>"; var_dump(getdate()); ?>
輸出結果:
由上述示例中可以看出,通過getdate函數,返回的數組中包含了當前時間的相關信息。
大家如果感興趣的話,可以點擊《PHP視頻教程》進行