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

藏色散人
Release: 2023-04-09 06:58:01
forward
12164 people have browsed it

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);
}
Copy after login

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

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);
}
Copy after login

调用:

//时间戳
$_t  = self::getMillisecond();
dd($_t);
Copy after login

打印结果:

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);
}
Copy after login

调用:

/**
     * @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);
    }
Copy after login

打印结果:

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!

Related labels:
php
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template