Maison >développement back-end >tutoriel php >PHP obtient l'horodatage actuel, la date et est précis en millisecondes (trois méthodes)

PHP obtient l'horodatage actuel, la date et est précis en millisecondes (trois méthodes)

藏色散人
藏色散人avant
2020-07-07 13:38:3312268parcourir

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 obtient lhorodatage actuel, la date et est précis en millisecondes (trois méthodes)

看看结果:

PHP obtient lhorodatage actuel, la date et est précis en millisecondes (trois méthodes)

成功获取到了,时间戳且精确到了毫秒!---- 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 obtient lhorodatage actuel, la date et est précis en millisecondes (trois méthodes)

第三种方法: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 obtient lhorodatage actuel, la date et est précis en millisecondes (trois méthodes)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer