Сколько прошло времени с указанной даты
1-ый способ
Вернуть, сколько прошло времени с указанной даты можно через метод DateTime::diff()
.
$date = new DateTime('1990-11-05 00:00:00'); echo $date->diff(new DateTime)->format('прошло %d дней %m месяца %y лет'); // прошло 5 дней 2 месяца 29 лет
2-ой способ
Функция ниже возвращает время до указанной даты в сокращённом виде.
function time_ago($datetime) { $interval = date_create('now')->diff($datetime); if ($interval->y >= 1) {return $interval->y.' лет';} if ($interval->m >= 1) {return $interval->m.' месяца';} if ($interval->d >= 1) {return $interval->d.' дней';} if ($interval->h >= 1) {return $interval->h.' часов';} if ($interval->i >= 1) {return $interval->i.' минут';} return $interval->s.' секунд'; } time_ago(new DateTime('1990-11-05')); // 29 лет time_ago(new DateTime('2017-11-05')); // 2 месяца time_ago(new DateTime('2018-01-05')); // 5 дней
Поддержать автора