Gelin birlikte bunu yapay zekaya soralım. Ben biraz kapsamlı isteyeceğim. saniye, dakika, gün, hafta, ay, yıl önce diye geri dönmesini istiyorum.

Yapay zekaya sordum.

PHP ile x zaman önce fonksiyonu nasıl yazdırabilirim?

Cevabı şöyle oldu;

PHP'de "x zaman önce" gibi bir metni hesaplamak için "time ago" fonksiyonu kullanılabilir. Bu fonksiyon, bir tarih ve saat ile şu anki tarih ve saat arasındaki farkı hesaplar ve sonucu "x zaman önce" şeklinde bir metin olarak döndürür.
Aşağıdaki örnek kodda, "time ago" fonksiyonu, verilen tarih ve saat bilgisine göre bir zaman dilimini hesaplamak için kullanılmaktadır:

function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);

    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    $string = array(
        'y' => 'yıl',
        'm' => 'ay',
        'w' => 'hafta',
        'd' => 'gün',
        'h' => 'saat',
        'i' => 'dakika',
        's' => 'saniye',
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? '' : '');
        } else {
            unset($string[$k]);
        }
    }

    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' önce' : 'az önce';
}
Kullanımı:

$datetime = '2022-03-22 17:45:00';
echo time_elapsed_string($datetime); // 1 yıl önce