我們知道,PHP中time()函數獲取的時間戳,其單位是秒.
但是,前端JS獲取的時間戳,單位是毫秒. 那麼,在實際應用中,如何將JS和PHP的時間戳統一,即如何使用PHP獲取毫秒時間戳呢,請看下例:<?php
//函數,獲取毫秒時間戳
function getMillisecond() {
list($t1, $t2) = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
}
//上面的函數是百度出來的,我剛開始看著也不是很明白.
//現分開詳細講解如下:
function getMillisecond_new(){
//使用microtime()獲取微秒時間戳,格式(中間空格隔開):'秒的小數部分 秒的整數部分',例如'0.69718900 1420440552'
//將微秒字符串explode炸開,接收$t1=0.69718900 $t2=1420440552
list($t1, $t2) = explode(' ', microtime());
//轉成浮點數
$t1=floatval($t1);
$t2=floatval($t2);
//相加×1000
$total=( $t1+ $t2) * 1000;
//四捨五入
$total=round($total,0);
//返回結果
return $total;
}
echo getMillisecond()," PHP毫秒-getMillisecond()<br/>";
echo getMillisecond_new().' PHP毫秒-getMillisecond_new()';
/*
* 思路:
* 1.使用microtime()獲取微秒時間戳,格式:0.69718900 1420440552
* 2.前後兩部分相加×1000,然後四捨五入round($float,0)
* 秒time()-->毫秒-->微秒microtime(),兩兩之間是1000進制
* 這樣,就可以與前端JS的時間戳保持一致
* JS : new Date().getTime()獲得毫秒時間戳
*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<html
>
<head
>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
>
<title>time</title
>
</head
>
<body
>
<br /
>
<script
>
var time=new Date();
var mtime=time.getTime();
document.write(mtime+' JS獲得毫秒時間戳');
</script
>
</body
>
</html
>
運行結果如下:
1424069168633 PHP毫秒-getMillisecond()
1424069168633 PHP毫秒-getMillisecond_new()
1424069168643 JS獲得毫秒時間戳
可以看出,第三個時間戳數值稍微比前兩個大,這是代碼運行所消耗的時間,是正常的.