728x90 AdSpace

  • Latest News

    1/15/2017

    PHP ile tarihi yıl önce, ay önce, gün önce gibi yazmak


    Pek çok gönderi altında bulunan yayınlanma tarihi artık standart bir görüntü yerine daha anlaşılır bir hal almaya başladı.  Görsellik açısından da daha güzel duruyor. Artık 14.01.2017 yerine "bir gün önce yazıldı. " gibi bir bildirim daha sık karşımıza çıkıyor. Basit bir fonksiyon ile bunun nasıl yapıldığına bakalım.



    PHP sayfasındaki saat ile sistem saatiniz farklı ise php.ini dosyasında date alanında timezone u bulup
    Europe/Istanbul olarak ayarlayın.

    php sayfanızda aşağıdaki fonksiyonu yazın.

    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' : '';
    }





      
    Kullanımı :

    echo time_elapsed_string($Degişken);
    echo time_elapsed_string('2013-05-01 00:22:35', true);



    Görüntü:
    4 ay önce
    4 ay 2 hafta 3 gün 1 saat 30 saniye önce


    -----------------------

    Bir başka fonksiyon ise veritabanına zamanı time() olarak kaydetmek ve şuanki zamandan çıkartıp zamana karşılık geleni bulmak. Tayfun erbilen video ile anlatmış. Kodlar aşağıda

    function NeZaman($time) {

        $zaman_farki= time()-$time;
        $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<=59) {
          return $saniye." saniye önce";
        }elseif ($dakika<=59) {
          return $dakika." dakika önce";
        }elseif ($saat<=23) {
          return $saat." saat önce";
        }elseif ($gun<=6) {
          return $gun." gun önce";
        }elseif ($hafta<=3) {
          return $hafta." hafta önce";
        }elseif ($ay<=11) {
          return $ay." ay önce";
        }else{
          return $yil." yıl önce";
        }
    }


    $tim = "1484504568";

    echo NeZaman($tim);    

    Mehmet Ali

    Grafik tasarım konusunda bir şeyler öğrenmekte, öğrenmekte olduklarını paylaşmakta.

    Website: Mhmtalizm

    • Blogger Yorumları
    • Facebook Yorumları

    0 yorum:

    Yorum Gönder

    Item Reviewed: PHP ile tarihi yıl önce, ay önce, gün önce gibi yazmak Rating: 5 Reviewed By: Kirli Adam
    Scroll to Top