一、time、date 和 microtime函數
time----返回當前的 Unix 時間戳
date----格式化一個本地時間/日期
microtime----返回當前的 Unix 時間戳和微秒數
二、三者的區別
1.time() 函數
time() 函數返回的是從 Unix 紀元(格林威治1970年1月1日00:00:00)到當前時間的秒數,如下
<?php echo time(); -------------------- 輸出結果 1546501413
2.date() 函數
date() 返回將整數 timestamp 按照給定的格式字符串而產生的字符串,如下
<?php
echo date("Y-m-d H:i:s",time());
---------------------------------------
輸出結果
2019-01-03 07:44:57
3.microtime() 函數
microtime() 返回當前 Unix 時間戳和微秒數。如果調用時不帶可選參數,該函數以 "msec sec" 的格式返回一個字符串,其中
sec 是從 Unix 紀元(格林威治1970年1月1日00:00:00)起到當前時間的秒數,msec 是微秒部分這一點需要注意下有的文章上寫
的是毫秒可以參考 PHP 手冊,字符串的兩部分都是以秒為單位返回的。如果可選參數為 true,microtime(true),返回的值是 sec
+ msec 的和,保留四位小數,如下:
<?php
list($msec, $sec) = explode(" ", microtime());
echo $msec;
echo "<br />";
echo $sec;
---------------------------------------
輸出結果
0.30716500<br />1546501702
time() 函數多用於記錄當前時間,date() 函數用於格式化一個時間戳,microtime() 函數可用於計算時間差,比如常用統計一個程序
的運行時間等
4.通過 microtime() 函數獲取毫秒時間戳
#Example 01 獲取時間差,毫秒級
<?php
function get_subtraction() {
$t1 = microtime(true);
$t2 = microtime(true);
echo (($t2 - $t1)*1000).'ms';
}
get_subtraction();
---------------------------------------
輸出結果:
0.0019073486328125ms
#Example 02 返回時間戳的毫秒部分
<?php
2
3 function get_millisecond() {
4 list($msec, $sec) = explode(" ", microtime());
5 $msec = round($msec * 1000);
6 echo $msec;
7 }
8
9 get_millisecond();
------------------------------------------------------------
輸出結果:
535
#Example 03 返回當前 Unix 時間戳和微秒數(用秒的小數表示)浮點數表示,常用來計算代碼執行時間
<?php
2
3 function microtime_float() {
4 list($msec, $sec) = explode(" ", microtime());
5 echo (float)$msec + (float)$sec;
6 }
7
8 microtime_float();
上面這段代碼的結果和 microtime(true) 相等
#Example 04 獲取毫秒級別時間戳
<?php
2
3 list($msec, $sec) = explode(" ", microtime());
4 $msectime = (float)sprintf("%.0f", (floatval($msec) + floatval($sec)) * 1000);
5
6 echo $mesctime;
------------------------------------
輸出結果:
1546509149102
floatval() 函數獲取變量的浮點值,doubleval() 函數是它的別名,具體使用可以參考 PHP 手冊
sprintf("%.0f",$num) 輸出不包含小數部分的浮點數
