php毫秒時間戳


2014年5月23日 17:46:04

凡事還是得靠自己呀,網上太多坑

如果你的機器是 32位 的可以看這個:

list($usec, $sec) = explode(' ', microtime());

$usec2msec = $usec * 1000;    //計算微秒部分的毫秒數(微秒部分並不是微秒,這部分的單位是秒)
$sec2msec = $sec * 1000;    //計算秒部分的毫秒數
$usec2msec2float = (float)$usec2msec;    
$sec2msec2float = (float)$sec2msec;    
$msec = $usec2msec2float + $sec2msec2float; //加起來就對了

echo $usec,'<br>';
echo $usec2msec,'<br>------------<br>';
echo $sec,'<br>';
echo $sec2msec,'<br>------------<br>';
echo $usec2msec2float,'<br>';
echo $sec2msec2float,'<br>------------<br>';
echo $msec,'<br>';
echo time(),'<br>';

$arrMsc = explode('.', $msec);
var_dump($arrMsc[0]);exit;

微秒數超過了int的范圍,所以用float轉換計算,最后保險起見(防止用到時候,被自動轉換為科學計數法的表示形式),用字符串來存儲

但有時候這個方法不行, 因為PHP會以科學計數法存儲 1.1234E.... 此時最后一步 explode 的時候,返回值總是1,如果是這樣的話,推薦下邊的方法

如果你的機器是64位的可以看這個:

1 list($usec, $sec) = explode(' ', microtime());
2 
3         $usec2msec = $usec * 1000;  //計算微秒部分的毫秒數(微秒部分並不是微秒,這部分的單位是秒)
4         $usec2msec2int = intval($usec2msec);
5         $sec2msec = $sec * 1000;    //計算秒部分的毫秒數
6         $sec2msec2int = intval($sec2msec);
7         
8         $msec = $sec2msec2int + $usec2msec2int; //加起來就對了
9         var_dump($msec);

 

Summer PHP 框架


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM