• 13-04-2023, 19:20:48
    #1
    Platin üye
    Merhaba arkadaşlar veritabanına kayıtlı tarih ve saat eklendiği zamandan bu zamana geçen süreyi nasıl yazdıra bilirim.
  • 13-04-2023, 19:30:18
    #2
    Backend Developer
    time fonksiyonu ile aradaki farkı sn bazında bulup istediğin işlemi yaptırabilirsin.

    <?php
    $db_zaman=strtotime($db_zaman);
    $result=time()-$db_zaman;
    ?>
  • 13-04-2023, 19:38:38
    #3
    Hocam öncelikle veritabanınızda tablonuza kayit_tarihi olarak bi alan açtıktan sonra oraya kayıt eklendiği anı yazdırmanız lazım bunun 2 yolu var.
    php ile :
    $now = date('Y-m-d H:i:s'); // Mevcut tarih ve saat
    
    // Veritabanına kaydet
    $sql = "INSERT INTO mytable (isim, created_at) VALUES ('test isim', '$now')";
    $result = mysqli_query($conn, $sql);
    bu şekilde php ile her insert işleminde $now değişkenini de eklersiniz ve o anki tarihi ekler.

    2. yolu ise PHPMyAdmin'in üzerinden yapabilirsiniz:
    1. Veritabanında bahsi geçen tabloyu açın.
    2. Kayıt ekleme formunu açın ve kayit_tarihi gibi bir sütun ismi girin.
    3. Alan tipini "TIMESTAMP" olarak ayarlayın.
    4. "Varsayılan" değeri "CURRENT_TIMESTAMP" olarak ayarlayın.
    bu şekilde de php kullanmadan her insert işleminde o anki tarihi yazdıracaktır.

    Şimdiki zamanla arasındaki farkı ölçmek için de:
    $db_date = '2023-04-12 10:30:00'; // Veritabanından alınan tarih ve saat değeri olarak düşünelim
    $db_datetime = new DateTime(date('Y-m-d H:i:s', strtotime($db_date)));
    $now_datetime = new DateTime(); // Şu anki tarih ve saat
    
    $diff = date_diff($db_datetime, $now_datetime);
    
    echo "Veritabanına kaydedilen tarihten beri geçen süre: " . $diff->format('%a gün, %h saat, %i dakika, %s saniye');
    şeklinde farkı yazdırabilirsiniz.
  • 13-04-2023, 19:43:10
    #4
    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
  • 13-04-2023, 20:14:53
    #5
    Platin üye
    Çok teşekkürler arkadaşlar.