Facebook Tarzı Anlık Geçen Süre

Facebooktaki gibi geçen zamanı anlık olarak görebilirsiniz.

Öncelikle jquery ve timeago kütüphanelerini script tagı ile çağırmalısınız.

https//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
http://timeago.yarp.com/jquery.timeago.js

Hemen altına script tagı içerisinde bu kodları ekleyin.

$.extend($.timeago, {
    settings: {
      refreshMillis: 1000,
      allowPast: true,
      allowFuture: false,
      localeTitle: false,
      cutoff: 0,
      strings: {
        prefixAgo: null,
        prefixFromNow: null,
        suffixAgo: "önce",
        suffixFromNow: "şimdi",
        inPast: 'sonra',
        seconds: "%d saniye",
        minute: "1 dakika",
        minutes: "%d dakika",
        hour: "1 saat",
        hours: "%d saat",
        day: "1 gün",
        days: "%d gün",
        month: "1 ay",
        months: "%d ay",
        year: "1 yıl",
        years: "%d yıl",
        wordSeparator: " ",
        numbers: []
      }
    }});
jQuery(document).ready(function() {
  jQuery("abbr.timeago").timeago();
});

Görünmesini istediğiniz yerde ise bu kodu kullanabilirsiniz.

<abbr class="timeago" title="<?php echo date("c", time()); ?>">Hesaplanıyor</abbr>

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";
}