Home  >  Article  >  Backend Development  >  PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

藏色散人
藏色散人forward
2020-07-07 13:38:3312114browse

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);
}

其次,调用这个方法,并打印结果:

PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

看看结果:

PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

成功获取到了,时间戳且精确到了毫秒!---- 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);

打印结果:

PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

第三种方法: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(&#39;`(?<!\\\\)u`&#39;, $milliseconds, $format), $timestamp);
}

调用:

/**
     * @param array       $reqData 接口传递的参数
     * @param PayMerchant $payConf object PayMerchant类型的对象
     * @return array
     */
    public static function getAllInfo($reqData, PayMerchant $payConf)
    {
        /**
         * 参数赋值,方法间传递数组
         */
        $order     = $reqData[&#39;order&#39;];
        $amount    = $reqData[&#39;amount&#39;];
        $bank      = $reqData[&#39;bank&#39;];
        $ServerUrl = $reqData[&#39;ServerUrl&#39;]; // 异步通知地址
        $returnUrl = $reqData[&#39;returnUrl&#39;]; // 同步通知地址
        //TODO: do something
        $data = array(
            &#39;mchntCode&#39;         => $payConf[&#39;business_num&#39;],
            &#39;channelCode&#39;       => $bank,
            &#39;mchntOrderNo&#39;      => $order,
            &#39;orderAmount&#39;       => $amount * 100,
            &#39;clientIp&#39;          => request()->ip(),
            &#39;subject&#39;           => &#39;goodsName&#39;,
            &#39;body&#39;              => &#39;goodsName&#39;,
            &#39;notifyUrl&#39;         => $ServerUrl,
            &#39;pageUrl&#39;           => $returnUrl,
            &#39;orderTime&#39;         => date(&#39;YmdHis&#39;),
            &#39;description&#39;       => $order,
            &#39;orderExpireTime&#39;   => date(&#39;YmdHis&#39;,time()+300),
            &#39;ts&#39;                => self::ts_time(&#39;YmdHisu&#39;),
        );
        dd($data);
    }

打印结果:

PHP gets the current timestamp, date and is accurate to milliseconds (three methods)

The above is the detailed content of PHP gets the current timestamp, date and is accurate to milliseconds (three methods). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete