php實作取得目前毫秒時間戳法

小云云
發布: 2023-03-20 17:44:01
原創
2407 人瀏覽過

本文主要跟大家介紹php實作取得目前毫秒時間戳法,希望能幫助大家。

最近在做一個智慧家庭專案的後台,需要即時上傳使用者對智慧型裝置的設定資訊到伺服器,以便實現同步,因此對於時間的精確度要求比較高,最開始直接是用php的time()函數來獲取時間戳,獲取的時間精確到秒級別,如果客戶端同時操作的話還是有可能產生衝突,因此建議將時間戳精度提高到毫秒級別,但是在php沒有自帶的函數能獲取毫秒時間戳,但提供了一個microtime()函數,如果呼叫時不帶可選參數,本函數以"msec sec" 的格式傳回字串,其中sec 是自Unix 紀元(0:00:00 January 1 , 1970 GMT)起到現在的秒數,msec 是微秒部分。字串的兩部分都是以秒為單位傳回的。

案例:


  1. //傳回目前的毫秒時間戳記

  2. ##function msectime() {

  3. list($msec, $sec) = explode(' ', microtime());

  4. $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);

  5. }

  6. #注意: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產生毫秒時間戳記的方法

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!