php如何取得目前時間戳精確到毫秒

小云云
發布: 2023-03-21 12:42:01
原創
13600 人瀏覽過

php沒有自帶的函數能取得毫秒時間戳,但提供了一個microtime()函數,如果呼叫時不帶可選參數,本函數以"msec sec" 的格式傳回字串,其中sec 是自Unix 紀元(0:00:00 January 1, 1970 GMT)起到現在的秒數,msec 是微秒部分。字串的兩部分都是以秒為單位傳回的。

<?php
echo microtime();
//输出结果是
//0.25139300 1138197510
登入後複製

 注意了,它的結果是分兩部分的,也就是前半部是毫秒(但是單位是秒),後半部是秒。
現在,我們依據這個做下修改,如下:

<?php
list($msec, $sec) = explode(&#39; &#39;, microtime());
$msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
这样就可以了,$msectime就是当前的毫秒数!可以将这两行封装成一个函数方便使用。
<?php
//返回当前的毫秒时间戳
function msectime() {
  list($msec, $sec) = explode(&#39; &#39;, microtime());
  $msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
}
登入後複製

注意:sprintf('%.0f', $num) 是輸出不含小數部分的浮點數

#事情還沒結束,我把時間戳改成毫秒等級後,再次更新資料庫資料時,卻提示超出範圍,原來之前我在資料庫中是用int型來儲存time()函數取得的秒級的時間戳,儲存範圍是夠的,改成毫秒等級的,就得改成BIGINT類型了。

整數型         位元組         範圍(有符號)            範圍(無符號)            (-128,127)                       (0,255)            #  #SMALLINT          2位元組    (-32 768,32 767)                    INT         3位元組   (-8 388 608,8 388 607)               (0,16 777 215)         (0,16 777 215)         (0,16 777 215)      整數值 

INT或INTEGER      4位元組  (-2 147 483 648,2 147 483 647)       (0,4 294 967 295)       (0,4 294 967 295) 問題           8位元組  (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 實現整數值#php#o#o##

#

#

#

PHP取得目前的時間戳記函數詳細講解

##php計算兩個時間戳記之間相差時間的兩種方法

以上是php如何取得目前時間戳精確到毫秒的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板