Veritabanı kullanan uygulama geliştirirken çoğu zaman tarih biçimini (formatını) değiştirmek gerekir. Türkçe de kullanılan tarih formatı ile MySQL veritabanında kullanılan tarih formatı aynı değildir. MySQL’de tarih YIL-AY-GÜN şeklinde kaydolurken Türkçe’de GUN-AY-YIL şeklinde gösterilemektedir. Ayrıca veritabanına tarih kaydetme ile ilgili örnek arıyorsanız. PHP Tarih Kaydetme başlıklı yazıyı okumanızı tavsiye ederim.
Tarih formatını değiştirmek gerektiğinde PHP yada MySQL tarafında fonksiyon yazmak yada yazılı fonksiyonlar ile işlem yapmak gerekir. Bu yazıda MySQL ve PHP ile ayrı ayrı tarih formatlarını nasıl değiştireceğinizi göstereceğim.
Öncelikli olarak kullandığım OGRENCI tablosu aşağıdaki gibi olduğunu ve işlemleri bunun üzerinden yapacağımı belirtmek isterim.
MySQL ile Tarih Formatını Değiştirme
İlk olarak en basit yöntem olan MySQL tarafında tarih biçimini nasıl değiştireceğimizi gösterelim. DATE_FORMAT fonksiyonu bizim için tarihin formatını değiştirir. Türkçe Tarih formatı yapmak için aşağıdaki SQL cümlesini kullanabiliriz.
1 2 3 4 | SELECT DATE_FORMAT(dtarih,'%d %m %Y') FROM OGRENCI |
Bu örneği kullanan PHP dosyası da şu şekilde oluşacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $vt="kutuphane"; $user="root"; $pass=""; $dbh = new PDO("mysql:host=localhost;dbname=".$vt, $user, $pass); foreach($dbh->query("SELECT DATE_FORMAT(dtarih,'%d %m %Y') FROM OGRENCI") as $row) { echo $row[0]."<br>"; } $dbh = null; |
PHP ile Tarih Formatını Değiştirme
Bazı durumlarda SQL sorgusuna müdahale etmek yerine sadece PHP ile tarih formatını değiştirmek isteyebiliriz. Bu kod veritabanından çekilen veriyi Türkçe tarih formatına çevirmektedir.
1 2 3 4 | $tarih = date("d-m-Y", strtotime("2020-01-30")); echo $tarih; |
Örneği bir tablo bağlantısı ile gösterecek olursak yazmamız gereken PHP kodu şu şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $vt="kutuphane"; $user="root"; $pass=""; $dbh = new PDO("mysql:host=localhost;dbname=".$vt, $user, $pass); foreach($dbh->query("SELECT dtarih FROM OGRENCI") as $row) { $tarih = date("d-m-Y", strtotime($row[0])); echo $tarih."<br>"; } $dbh = null; |
1 Yorum