1. 程式人生 > 程式設計 >PHP獲取當前時間的5種實現方式

PHP獲取當前時間的5種實現方式

在日期和時間函式中,UNIX 時間戳的獲取非常重要,時間戳是一個字元序列,是指格林尼治時間 1970年 01 月 01 日 00 時 00 分 00 秒(北京時間 1970 年 01 月 01 日 08 時 00 分 00 秒)起至現在的總毫秒數。下面介紹幾個獲取當前時間的函式。

gmmktime()

gmmktime() 函式可取得 GMT 日期的 UNIX 時間戳。語法如下:

int gmmktime ([ int $hour [,int $minute [,int $second [,int $month [,int $day [,int $year [,int $is_dst ]]]]]]] )

該函式的引數可以從右到左依次空著,空著的引數會被設為相應的當前 GMT 值。

使用示例如下:

<?php
echo gmmktime(); //沒有設定引數,則預設取得當前GMT時間
echo gmmktime(0,45,3,7,2016); //設定引數表示GMT時間2016年7月7日0點45分3秒
?>

執行以上程式的列印結果為:
1467909956 1467852303

mktime()

mktime() 也可取得一個日期的 UNIX 時間戳。語法如下:

int mktime ([ int $hour = date("H") [,int $minute = date("i") [,int $second = date("s") [,int $month = date("n") [,int $day = date("j") [,int $year = date("Y") [,int $is_dst = -1 ]]]]]]] )

該函式根據給出的引數返回 UNIX 時間戳。時間戳是一個長整數,包含了從 UNIX 紀元到給定時間的秒數。

和 gmmktime() 函式一樣,該函式的引數也可以從右向左省略,任何省略的引數會被設定成本地日期和時間的當前值。

使用示例如下:

<?php
echo mktime(); // 沒有設定引數則預設取得當前GMT時間
echo mktime(0,2016); //設定引數表示GMT時間2016年7月7日0點45分3秒
?>

執行以上程式的列印結果為:
1467910465 1467852303

microtime()

microtime() 可獲得當前 UNIX 時間戳和微秒數。語法如下:

mixed microtime ([ bool $get_as_float ] )

如果設定 get_as_float 引數值為 true,microtime() 將返回一個浮點數;若不帶引數,則返回一個“msec sec”格式的字串,其中 sec 是自 UNIX 紀元起到現在的秒數,msec 是微秒部分。字串的兩部分都是以秒為單位返回的。

使用示例如下:

<?php
echo microtime(); //返回 msec sec 格式字串表示時間
echo "<br/>";
echo microtime(true); //返回一個浮點型字串表示時間
?>

執行以上程式的列印結果如下:
0.40474900 1467910862
1467910862.4048

time()

time() 函式可返回當前的 UNIX 時間戳。語法如下:

int time ( void )

time() 函式的語法比較簡單,使用示例如下:

<?php
echo time();
?>

執行以上程式的列印結果為:
1467911104

getdate()

getdate() 可取得日期時間資訊。語法如下:

array getdate ([ int $timestamp = time() ] )

該函式返回一個根據 timestamp 得出的包含有日期資訊的關聯陣列 array。如果沒有給出時間戳,則認為是當前本地時間(此時和 time() 函式取值相同)。

其返回的關聯陣列中的鍵名單元如表所示。

getdate() 函式返回關聯陣列鍵名

鍵名 說明 返回值例子
seconds 秒的數字表示 0 到 59
minutes 分鐘的數字表示 0 到 59
hours 小時的數字表示 0 到 23
mday 月份中第幾天的數字表示 1 到 31
wday 星期中第幾天的數字表示 0(週日)到6(週六)
mon 月份的數字表示 1 到 12
year 4 位數字表示的完整年份 比如:1999 或 2019
yday 一年中第幾天的數字表示 0 到 365
weekday 星期幾的完整文字表示 Monday 到 Sunday
month 月份的完整文字表示,,比如 January 或 April January 到 December
0 自從 UNIX 紀元開始至今的秒數,和 time() 的返回值以及用於 date() 的值類似 系統相關,典型值為 -2147483648 ~ 2147483647

getdate() 函式的使用示例如下:

<?php
echo "<pre>";
var_dump(getdate());
?>

執行以上程式的列印結果如下:
array(11) {
["seconds"]=>int(57)
["minutes"]=>int(18)
["hours"]=>int(17)
["mday"]=>int(7)
["wday"]=>int(4)
["mon"]=>int(7)
["year"]=>int(2016)
["yday"]=>int(188)
["weekday"]=>string(8) "Thursday"
["month"]=>string(4) "July"
[0]=>int(1467911937)
}

到此這篇關於PHP獲取當前時間的5種實現方式的文章就介紹到這了,更多相關PHP獲取當前時間內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!