利用 PHP 5.x 中的 DateInterval 将 DateTime 对象转化为友好时间显示
- /**
- * 友好日期时间
- *
- * @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));
- }
复制代码
|