PHP ile dün, bugün gibi tarih [ Unix time to real time ]

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
PHP ile dün, bugün gibi tarih [ Unix time to real time ]
#1
Bugün üzerinde uğraştığım php script'i için, son yazılan mesajların yazılış zamanını bugün, dün, 1 saat önce vs. gibi yazdırma ihtiyacı duydum.
İnternette bu konuyla ilgili biraz araştırma yaptım ama işime yarayacak bir fonksiyon yada örnek bulamadım. İş başa düşünce kendim yazdım bende.
Belki ihtiyacı olan olur diye konuya ekliyorum.
Fonksiyonu çok duyarlı yapmadım fakak isterseniz siz fonksiyonu geliştirip saniyeye göre de işlem yapabilirsiniz.

PHP Kod:
function MsgTime($time)
{    
    
date_default_timezone_set('Europe/Istanbul');
    
$simdiki_zaman time();
    if ( (
$simdiki_zaman $time) <= 60 )
    {
        return 
"1 dk önce";
    }
    else if( (
$simdiki_zaman $time) < 3600)
    {
        
$fark = ($simdiki_zaman $time ) / 60;
        
settype($fark,"integer");
        return(
$fark " dk önce");
    }
    else if( (
$simdiki_zaman $time) < 43200)
    {
        
$fark = ( ($simdiki_zaman $time ) / 60 ) / 60;
        
settype($fark,"integer");
        return(
$fark " saat önce");
    }
    else if( 
 (($simdiki_zaman $time) < 86400 ) & date("d",time()) - date("d",$time) == )
    {
        return(
"Bugün, " date("H:i",$time));
    }
    else if( 
 (($simdiki_zaman $time) < 86400 ) & date("d",time()) - date("d",$time) == )
    {
        return(
"Dün, " date("H:i",$time));
    }
    else if( 
 (($simdiki_zaman $time) < 172800 ) & date("d",time()) - date("d",$time) == )
    {
        return(
"Dün, " date("H:i",$time));
    }
    else
    {
//2 günden eski...
    
return date("d.m.y H:i"$time );
    }
//2 günden eski..?
    


Örnek Kullanım :

PHP Kod:
echo MsgTime("1445186475"); 

Php ile unix time (saniye cinsinden) zamanı almak için :

PHP Kod:
echo time(); 


Php ile 1 saat öncesinin zamanını almak için :

PHP Kod:
echo time() - 3600



Üstteki fonksiyon nasıl bir çıktı verir:

60 saniye ve aşağısı için : "1 dk önce"
60 dk altı için : x dakika önce
12 saat aşağısı için : x saat önce
24 saat içinde ve bugün içinde kalan zaman : Bugün, xx:xx
24 saat içinde ve dünde kalan için : Dün, xx:xx
48 saat içinde ve dünde kalan için : Dün, xx:xx
48 saat ve eskisi için : xx.xx.xx xx:xx


* Fonksiyonu çok fazla test etmedim. Olurda hata yada sorun tespit eder ve bildirirseniz minnettar olurum.
Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi