看看DateTime()和DateInterval::format()
$dt1 = new DateTime('@1384327800');
$dt2 = new DateTime('@1384300800');
$diff = $dt1->diff($dt2);
echo $diff->format('%h hours and %i minutes');
如果需要,这最后一点将从您的字符串中删除不必要的时间段。
$elapsed = $diff->format('%y years, %m months, %a days, %h hours, %i minutes, %S seconds');
$elapsed = str_replace(array('0 years,', ' 0 months,', ' 0 days,', ' 0 hours,', ' 0 minutes,'), '', $elapsed);
$elapsed = str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ', ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $elapsed);
echo $elapsed;