Detaylı Geçen Süre veya Kalan Süre Hesaplamak

Örneğin

1 yıl 3 ay 2 hafta 1 gün 3 saat 2 dakika 3 saniye

gibi bir çıktı verir.

<?php 
function ne_zaman($zaman,$gecensure=true){//$zaman time() int[11].
    $day = 60 * 60 * 24;//default
if($gecensure==true){//geçenzaman
    $fark = floor(time() - $zaman);//default
}else{//false ise kalanzaman
    $fark = ($zaman - floor(time());
}
$sec = $day / 24 / 60 / 60 ;
$min = $day / 24 / 60 ;
$hour = $day / 24 ;
$day = $day ;
$week = $day * 7 ;
$month = $day * 30 ;
$year = $day * 365 ;
// [ayrışık tam ve detaylı olarak tümünü verir][1 yıl 3 ay 2 hafta 1 gün 3 saat 2 dakika 3 saniye gibi]
if(floor($fark / $year) > 0){$ayear= floor($fark / $year);$fark=$fark -(floor($fark / $year) * $year);}else{$ayear=0;}
if(floor($fark / $month) > 0){$amonth= floor($fark / $month);$fark=$fark -(floor($fark / $month) * $month);}else{$amonth=0;}
if(floor($fark / $week) > 0){$aweek= floor($fark / $week);$fark=$fark -(floor($fark / $week) * $week);}else{$aweek=0;}
if(floor($fark / $day) > 0){$aday= floor($fark / $day);$fark=$fark -(floor($fark / $day) * $day);}else{$aday=0;}
if(floor($fark / $hour) > 0){$ahour= floor($fark / $hour);$fark=$fark -(floor($fark / $hour) * $hour);}else{$ahour=0;}
if(floor($fark / $min) > 0){$amin= floor($fark / $min);$fark=$fark -(floor($fark / $min) * $min);}else{$amin=0;}
if(floor($fark / $sec) > 0){$asec= floor($fark / $sec);$fark=$fark -(floor($fark / $sec) * $sec);}else{$asec=0;}
//print
$print = "";
$ayear > 0 ? $print.=$ayear." yıl ": "";
$amonth > 0 ? $print.=$amonth." ay ": "";
$aweek > 0 ? $print.=$aweek." hafta ": "";
$aday > 0 ? $print.=$aday." gün ": "";
$ahour > 0 ? $print.=$ahour." saat ": "";
$amin > 0 ? $print.=$amin." dakika ": "";
$asec > 0 ? $print.=$asec." saniye ": "";
if($gecensure==true){//geçenzaman
    return $print." önce";
}else{//false ise kalanzaman
    return $print." sonra";
}