• 技术文章 >后端开发 >php教程

    php获取当前时间戳、日期并精确到毫秒(三种方法)

    藏色散人藏色散人2020-07-07 13:38:33转载2307
    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获取当前时间戳、日期并精确到毫秒(三种方法)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:php
    上一篇:教你用php将二维码和文字结合到一个背景图片上! 下一篇:PHP如何结合MySQL进行千万级数据处理
    大前端线上培训班

    相关文章推荐

    • PHP时间戳和日期格式相互转换• php日期转换为时间戳的方法• php中Date函数和时间戳函数及它们之间格式转换教程(附实例)• php中日期怎么转换为时间戳

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网