Использование PHP DateTime и DateInterval классов,
$dt1 = new DateTime("2012-02-10 10:32:22");
$dt2 = new DateTime();
$diff = $dt2->diff($dt1);
echo $diff->format("%Y years, %m months, %d days, %H hours, %I minuts, %s seconds ago");
/// 00 years, 1 months, 18 days, 08 hours, 26 minuts, 51 seconds ago
Если вы не хотите выводить 00 years
, 00 months
и т. Д., Проверьте, что свойства DateTime::y
, DateTime::m
и т. Д. Равны 0. Если ноль не отображает их. Например,
$format = "";
if ($diff->y > 0){
$format.="%Y years,";
}
if ($diff->m > 0){
$format.="%m months,";
}
...
// more conditions for hours, minutes, seconds
// echo the format
echo $diff->format($format);
Интересные ссылки,
- DateTime :: __ конструкт ()
- DateTime :: Diff ()
- DateInterval :: формат ()