18-10-2015, 19:55
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.
İ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:
<?php
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) == 0 )
{
return("Bugün, " . date("H:i",$time));
}
else if( (($simdiki_zaman - $time) < 86400 ) & date("d",time()) - date("d",$time) == 1 )
{
return("Dün, " . date("H:i",$time));
}
else if( (($simdiki_zaman - $time) < 172800 ) & date("d",time()) - date("d",$time) == 1 )
{
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:
<?php
echo MsgTime("1445186475");