PHP’de aşağıdaki fonksiyonları kullanarak eklenme tarihini “x zaman önce” eklendi şeklinde gösterebilirsiniz.
// Tarih zaman dilimi ayarlama
date_default_timezone_set('Europe/Istanbul');
// Fonksiyon
function time_ago($datetime){
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$time_arr = [
'y' => 'yıl',
'm' => 'ay',
'w' => 'hafta',
'd' => 'gün',
'h' => 'saat',
'i' => 'dakika',
's' => 'saniye'
];
foreach($time_arr as $k => &$v){
if($diff->$k){
$v = $diff->$k . ' ' . $v;
}else{
unset($time_arr[$k]);
}
}
return $time_arr ? implode(', ', array_slice($time_arr, 0, 1)) . ' önce' : 'hemen şimdi';
}
// Örnek Kullanım
echo time_ago('2020-06-11 02:13:00');
yada alttaki fonksiyonu kullanabilirsiniz her ikisin de de aynı işlemi yapmaktadır.
/* “X Zaman Önce” Yazıldı Fonksiyonu */
function timeConvert ( $zaman ){
$zaman = strtotime($zaman);
$zaman_farki = time() - $zaman;
$saniye = $zaman_farki;
$dakika = round($zaman_farki/60);
$saat = round($zaman_farki/3600);
$gun = round($zaman_farki/86400);
$hafta = round($zaman_farki/604800);
$ay = round($zaman_farki/2419200);
$yil = round($zaman_farki/29030400);
if( $saniye < 60 ){
if ($saniye == 0){
return "az önce";
} else {
return $saniye .' saniye önce';
}
} else if ( $dakika < 60 ){
return $dakika .' dakika önce';
} else if ( $saat < 24 ){
return $saat.' saat önce';
} else if ( $gun < 7 ){
return $gun .' gün önce';
} else if ( $hafta < 4 ){
return $hafta.' hafta önce';
} else if ( $ay < 12 ){
return $ay .' ay önce';
} else {
return $yil.' yıl önce';
}
}
echo timeConvert ( $date ); // şeklinde kullanabilirsiniz.
ben genelde alttakini kullanıyorum.