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

php 获取当前时间戳、日期并精确到毫秒

首先,我们封装一个获取时间戳的方法:

第一种方法:时间戳13位

  1. /**
  2. * 获取时间戳到毫秒
  3. * @return bool|string
  4. */
  5. public static function getMillisecond(){
  6. list($msec, $sec) = explode(' ', microtime());
  7. $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
  8. return $msectimes = substr($msectime,0,13);
  9. }

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

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

看看结果:

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

成功获取到了,时间戳且精确到了毫秒!---- 13位,自己数数。

第二种方法:时间戳浮点型

  1. /**
  2. * 时间戳 - 精确到毫秒
  3. * @return float
  4. */
  5. public static function getMillisecond() {
  6. list($t1, $t2) = explode(' ', microtime());
  7. return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);
  8. }

调用:

  1. //时间戳
  2. $_t = self::getMillisecond();
  3. dd($_t);

打印结果:

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

第三种方法:14位年月日时分秒+3位毫秒数

  1. /**
  2. * 年月日、时分秒 + 3位毫秒数
  3. * @param string $format
  4. * @param null $utimestamp
  5. * @return false|string
  6. */
  7. public static function ts_time($format = 'u', $utimestamp = null) {
  8. if (is_null($utimestamp)){
  9. $utimestamp = microtime(true);
  10. }
  11. $timestamp = floor($utimestamp);
  12. $milliseconds = round(($utimestamp - $timestamp) * 1000);
  13. return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp);
  14. }

调用:

  1. /**
  2. * @param array $reqData 接口传递的参数
  3. * @param PayMerchant $payConf object PayMerchant类型的对象
  4. * @return array
  5. */
  6. public static function getAllInfo($reqData, PayMerchant $payConf)
  7. {
  8. /**
  9. * 参数赋值,方法间传递数组
  10. */
  11. $order = $reqData['order'];
  12. $amount = $reqData['amount'];
  13. $bank = $reqData['bank'];
  14. $ServerUrl = $reqData['ServerUrl']; // 异步通知地址
  15. $returnUrl = $reqData['returnUrl']; // 同步通知地址
  16. //TODO: do something
  17. $data = array(
  18. 'mchntCode' => $payConf['business_num'],
  19. 'channelCode' => $bank,
  20. 'mchntOrderNo' => $order,
  21. 'orderAmount' => $amount * 100,
  22. 'clientIp' => request()->ip(),
  23. 'subject' => 'goodsName',
  24. 'body' => 'goodsName',
  25. 'notifyUrl' => $ServerUrl,
  26. 'pageUrl' => $returnUrl,
  27. 'orderTime' => date('YmdHis'),
  28. 'description' => $order,
  29. 'orderExpireTime' => date('YmdHis',time()+300),
  30. 'ts' => self::ts_time('YmdHisu'),
  31. );
  32. dd($data);
  33. }

打印结果:

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