PHP'de '... gün önce' Şeklinde Bağıl Tarih Yazma

27 Nisan 2010

Youtube'da ya da kullanıcıların yorumlarının yayınlandığı pek çok yerde görmüşsünüzdür: yorumun yazılış tarihi, 12 Ekim 2009, 12:24 gibi net bir tarih olarak değil de aradan geçen süre bazında (2 gün önce, 5 yıl önce, vb…) gösterilir.

Aşağıdaki bu işi türkçe olarak yapan bir PHP fonksiyonu bulunmakta. PHP'de bulunan strtotime fonksiyonunun kabul ettiği her türlü tarih değerini girdi olarak kullanabilirsiniz. Bu da veritabanınızdan aldığınız tarihi çok büyük ihtimalle direkt olarak kullanabileceğiniz anlamına gelir. Fonksiyonun kullanım şekli, başındaki açıklama satırlarında mevcuttur.

Tarihi türkçe olarak doğrudan '12 Ekim 2009', '07-Ağustos-2008, Cumartesi' gibi şekillerde yazdırmak istiyorsanız PHP ile Türkçe Tarih Gösterimi-Çevrimi başlıklı yazıya gözatmanız daha doğru olur.

/**
 * verilen tarihler arasında geçen süreyi "1 gün önce", "2 hafta önce" gibi
 * günlük kullanım'a uygun kolay anlaşılır bir şekle çevirir. Normal kullanımda
 * o anki tarih baz alınır.
 * İstenirse ikinci parametre kullanılarak, girilen iki tarih arasındaki
 * fark alınabilir.
 * Örnek Kullanım (şu anki tarihi 2009-08-25 13:00:00 olarak kabul edersek):
 *      echo "çıktı: ".cicitarih("2009-08-23 12:05:14"); // çıktı: 2 gün önce
 *      echo "çıktı: ".cicitarih("2009-04-23 10:00:00"); // çıktı: 4 ay önce
 *      echo "çıktı: ".cicitarih("2009-04-23 10:00:00", "2009-05-24 11:00");
 *                                                       //çıktı: 1 ay önce
 * @author gudubeth.net
 * @param str $tarih    hesabın yapılacağı tarih. strtotime fonksiyonu
 *                      tarafından kulanılabilecek her türlü string değerini
 *                      alabilir.
 *                      bkz: http://www.php.net/manual/tr/function.strtotime.php
 * @param str $simdi    boş bırakılırsa, o anki saat baz alınır.
 *                      formatı $tarih alanında olduğı gibidir.
 * @return str
 */
function cicitarih($tarih, $simdi=null){

    //aradan geçen süreyi bul
    if(!$simdi) $simdi=time();
    $sure=$simdi-strtotime($tarih);

    //eğer geçen süre negatif ise boş metin döndür.
    if($sure<0) return "";

    //dönüş metninin oluşturulduğu yer
    //3600: 60*60, yani 1 saat;
    //86400: 60*60*24 yani 1 gün demektir.
    if($sure<60)return round($sure)." saniye önce";
    else if($sure<3600) return round($sure/60)." dakika önce";
    else if($sure<86400) return round($sure/(3600))." saat önce";
    else if($sure<86400*7) return round($sure/(86400))." gün önce";
    else if($sure<86400*30) return round($sure/(86400*7))." hafta önce";
    else if($sure<86400*365) return round($sure/(86400*30))." ay önce";
    else  return round($sure/(86400*365))." yıl önce";
}

PHP'de '... gün önce' Şeklinde Bağıl Tarih Yazma

27 Nisan 2010

PHP'de '... gün önce' Şeklinde Bağıl Tarih Yazma

Youtube yorumlarında olduğu gibi, tarihleri '2 gün önce', '4 ay önce' gibi aradan geçen zaman şeklinde yazan fonksyion.

Sitenize javascript ile kısayollar ekleyin

25 Nisan 2010

Sitenize javascript ile kısayollar ekleyin

Websiteniz için klavye kısayolları yaratmaya yarayan javascript kütüphanesi. Herhangi bir kütüphaneye (JQuery, Mootools, vs) bağlı olmadan çalışabiliyor olması en büyük artılarından.

PHP'de Tarih ve Saat Farkı Hesaplama

16 Ocak 2010

PHP'de Tarih ve Saat Farkı Hesaplama

String ya da unix timestamp olarak gelen iki tarih arasındaki farkı içinde saniye, dakika, gun, ay, vs, gibi detayları barındıran bir dizi şekilde döndüren fonksyion.

PHP ile dizin silme fonksiyonu

12 Ocak 2010

PHP ile dizin silme fonksiyonu

Bir dizin ve içindeki dosyaları silmeyi sağlayan fonksiyon. Gerektiğinde 'regular expressions' kullanarak isme göre silme işlemi yapabilirsiniz.

PHP ile Türkçe Tarih Gösterimi-Çevrimi

30 Aralık 2009

PHP ile Türkçe Tarih Gösterimi-Çevrimi

Tarihleri Türkçe olarak yazan fonksiyon. Altyapısında PHP'nin 'date' fonksiyonu kullanılıyor. Bu sayede bu fonksiyonda kullandığınız parametreleri aynen kullanabiliyorsunuz.

UTF-8 metinlerdeki aksanları kaldırma

12 Aralık 2009

UTF-8 metinlerdeki aksanları kaldırma

İngiliz alfabesinde bulunmayan aksanlı harfleri (ç, ğ, ş), bu alfabeye uygun aksansız harflere (c, g, s) çevirmek için gerekli kod.