PHP将DateTime对象转化为友好时间显示的实现代码

时间:2022-08-25 17:34:27

代码如下:


/** 
* 友好日期时间 

* @param DateTime $datetime 日期时间 
* @param int $size 精确到位数 
* @throws \InvalidArgumentException 
* @return string 
*/ 
function friendly_date($datetime, $size=1) 

if (is_int($datetime)) { 
$datetime = new \DateTime($datetime); 

if (!($datetime instanceof \DateTime)) { 
throw new \InvalidArgumentException('invalid "DateTime" object'); 

$now = new \DateTime(); 
$interval = $now->diff($datetime); 
$intervalData = array( 
$interval->y, $interval->m, $interval->d, 
$interval->h, $interval->i, $interval->s, 
); 
$intervalFormat = array('年', '个月', '天', '小时', '分种', '秒'); 
foreach($intervalData as $index=>$value) { 
if ($value) { 
$intervalData[$index] = $value . $intervalFormat[$index]; 
} else { 
unset($intervalData[$index]); 
unset($intervalFormat[$index]); 


return implode('', array_slice($intervalData, 0, $size));