首先,我们封装一个获取时间戳的方法:
第一种方法:时间戳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);
}
其次,调用这个方法,并打印结果:
看看结果:
成功获取到了,时间戳且精确到了毫秒!---- 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);
打印结果:
第三种方法: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);
}
打印结果:
/**
* 时间格式化
* @param $time
* @return false|string
*/
function formatTime($time)
{
$rtime = date("m-d H:i", $time);
$htime = date("H:i", $time);
$time = time() - $time;
if ($time < 60) {
$str = '刚刚';
} elseif ($time < 60 * 60) {
$min = floor($time / 60);
$str = $min . '分钟前';
} elseif ($time < 60 * 60 * 24) {
$h = floor($time / (60 * 60));
$str = $h . '小时前 ';
} elseif ($time < 60 * 60 * 24 * 3) {
$d = floor($time / (60 * 60 * 24));
if ($d == 1) {
$str = '昨天' . $htime;
} else {
$str = '前天' . $htime;
}
} else {
$str = $rtime;
}
return $str;
}
//时间格式化1
function formatTime($time) {
$now_time = time();
$t = $now_time - $time;
$mon = (int) ($t / (86400 * 30));
if ($mon >= 1) {
return '一个月前';
}
$day = (int) ($t / 86400);
if ($day >= 1) {
return $day . '天前';
}
$h = (int) ($t / 3600);
if ($h >= 1) {
return $h . '小时前';
}
$min = (int) ($t / 60);
if ($min >= 1) {
return $min . '分钟前';
}
return '刚刚';
}
//时间格式化2
function pincheTime($time) {
$today = strtotime(date('Y-m-d')); //今天零点
$here = (int)(($time - $today)/86400) ;
if($here==1){
return '明天';
}
if($here==2) {
return '后天';
}
if($here>=3 && $here<7){
return $here.'天后';
}
if($here>=7 && $here<30){
return '一周后';
}
if($here>=30 && $here<365){
return '一个月后';
}
if($here>=365){
$r = (int)($here/365).'年后';
return $r;
}
return '今天';
}