Php Tarih İşlemleri

Php‘de sık sık kullandığımız tarih işlemleriyle ilgili bir yazı yazma ihtiyacı hissettim. Kısa kısa tarih fonksiyonlarını ve kullanım şekillerini anlatıcam. Umarım faydalı olur. Düşüncelerinizi paylaşmayı unutmayın 🙂

date() fonksiyonu

<?php echo date("Y-m-d H:i:s");//2016-02-17 15:25:14 ?>

Yukarıdaki kod sayesinde ekrana “2016-02-17 15:25:14” şeklinde bir çıktı alıyoruz. Bu tarih bulunduğumuz zamının verisi. Kullanılan harflerin anlamlarını aşağıda açıkladım.

<?php
echo date("Y");//yıl verisini 4 hane olarak getirir : 2016 
echo date("y");//yıl verisinin son 2 hanesini getirir : 16

echo date("M");//ay verisini ingilizce ay isimlerinin ilk üç hanesi olarak şekilde getirir : Feb
echo date("m");//ay verisini rakam olarak getirir : 02

echo date("D");//gün verisini ingilizce gün isimlerinin ilk üç hanesi olarak şekilde getirir : Wed
echo date("d");//gün verisini rakam olarak getirir : 17

echo date("H");//günü 24 saat kabul ederek saat verisini getirir : 15
echo date("h");//günü 12 saat kabul ederek saat verisini getirir : 03

echo date("i");//dakika verisi : 41
echo date("s");//saniye verisi : 21
?>

Bu kullanım şekillerini, ilk kod örneğinedki gibi istediğiniz gibi harmanyalarak kullanabilirsiniz. Malum kimileri önce ay gelsin vb. isteklerde bulunabilirler.

strtotime() fonksiyonu
Bazı durumlarda; veritabanından, formdan text gelen tarih verisi üzerinde işlem yapmanız gerekebilir. Bu işlem ekran çıktısında farklı format olabilir, bir gün sonrasını almak olabilir. Bu durumda tarih üzerinde işlem yapabilmek için strtotime() fonsiyonunu kullanırız. Unix timestamp ile ilgili aşağıya kısa bir kaç cümle yazdım.

<?php
$tarih = "2016-01-02 03:04:05";//text tarih verisi
echo strtotime($tarih);//unix timestamp formatında : 1451696645
echo date("Y-m-d H:i:s",strtotime($tarih));//kendi belirlediğimiz formatta : 2016-01-02 03:04:05
?>

Unix timestamp nedir?
1907-01-01 01:01:01 tarihinden, istenilen tarihe kadar geçen saniyeyi belirten zaman türü. Yukarıda verdiğimiz örnekteki “2016-01-02 03:04:05” tarihinin, unix timestamp karşılığının “1451696645” olması gibi. İki tarih arasında geçen süreyi bulmak için unix timestamp’i kullanabilirsiniz. Dosya kayıt işlemlerinde bu değeri kullanabilirsiniz. Ancak aynı saniyede iki işlem olabileceğini göz önünde bulundurun!

Bir Tarihten İleri ya da Geri Bir Tarihi Bulma
Farklı işlemlerde tarihten ileri ya da geri tahileri bulmak gerekebiliyor. Ancak malesef bazı yazılımcı kardeşlerimiz bu tarih bulmaları doğrudan tezt işleme yöntemiyle bulmaya çalışıyor. Aşağıdaki kodlar da kullanılabilir sanki 🙂

<?php
$tarih = "2016-01-02 03:04:05";//text tarih verisi
echo date("Y-m-d H:i:s",strtotime("+1 day",strtotime($tarih)));//bir gün sonrası : 2016-01-03 03:04:05
echo date("Y-m-d H:i:s",strtotime("-1 day",strtotime($tarih)));//bir gün öncesi : 2016-01-01 03:04:05
echo date("Y-m-d H:i:s",strtotime("+1 min",strtotime($tarih)));//bir dakika sonrası : 2016-01-02 03:05:05
echo date("Y-m-d H:i:s",strtotime("+1 sec",strtotime($tarih)));//bir saniye sonrası : 2016-01-02 03:04:06
?>

Umarım faydalı olur. Lütfen yorumlarınızı eksik etmeyiniz 🙂