php獲取當前時間戳、日期並精確到毫秒(三種方法)

2020-07-16 10:05:59
php 獲取當前時間戳、日期並精確到毫秒

首先,我們封裝一個獲取時間戳的方法:

第一種方法:時間戳13位

/**
 * 獲取時間戳到毫秒
 * @return bool|string
 */
public static function getMillisecond(){
    list($msec, $sec) = explode(' ', microtime());
    $msectime =  (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
    return $msectimes = substr($msectime,0,13);
}

其次,呼叫這個方法,並列印結果:

企業微信截圖_15941001031621.png

看看結果:

企業微信截圖_15941001171188.png

成功獲取到了,時間戳且精確到了毫秒!---- 13位,自己數數。

第二種方法:時間戳浮點型

/**
 * 時間戳 - 精確到毫秒
 * @return float
 */
public static function getMillisecond() {
    list($t1, $t2) = explode(' ', microtime());
    return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);
}

呼叫:

//時間戳
$_t  = self::getMillisecond();
dd($_t);

列印結果:

企業微信截圖_15941001284592.png

第三種方法:14位元年月日時分秒+3位毫秒數

/**
 * 年月日、時分秒 + 3位毫秒數
 * @param string $format
 * @param null $utimestamp
 * @return false|string
 */
public static function ts_time($format = 'u', $utimestamp = null) {
    if (is_null($utimestamp)){
        $utimestamp = microtime(true);
    }
 
    $timestamp = floor($utimestamp);
    $milliseconds = round(($utimestamp - $timestamp) * 1000);
 
    return date(preg_replace('`(?<!)u`', $milliseconds, $format), $timestamp);
}

呼叫:

/**
     * @param array       $reqData 介面傳遞的引數
     * @param PayMerchant $payConf object PayMerchant型別的物件
     * @return array
     */
    public static function getAllInfo($reqData, PayMerchant $payConf)
    {
        /**
         * 引數賦值,方法間傳遞陣列
         */
        $order     = $reqData['order'];
        $amount    = $reqData['amount'];
        $bank      = $reqData['bank'];
        $ServerUrl = $reqData['ServerUrl']; // 非同步通知地址
        $returnUrl = $reqData['returnUrl']; // 同步通知地址
        //TODO: do something
        $data = array(
            'mchntCode'         => $payConf['business_num'],
            'channelCode'       => $bank,
            'mchntOrderNo'      => $order,
            'orderAmount'       => $amount * 100,
            'clientIp'          => request()->ip(),
            'subject'           => 'goodsName',
            'body'              => 'goodsName',
            'notifyUrl'         => $ServerUrl,
            'pageUrl'           => $returnUrl,
            'orderTime'         => date('YmdHis'),
            'description'       => $order,
            'orderExpireTime'   => date('YmdHis',time()+300),
            'ts'                => self::ts_time('YmdHisu'),
        );
        dd($data);
    }

列印結果:

企業微信截圖_1594100138657.png

以上就是php獲取當前時間戳、日期並精確到毫秒(三種方法)的詳細內容,更多請關注TW511.COM其它相關文章!