Php Zaman Damgası :

Veritabanlarında zaman formatı(date, time) kullanmak sıkıntı veriyor ise, yerine INTEGER alanı ve timestamp değeri kullanarabiliriz.

Örneğin


<?php $simdi = time(); echo $simdi; // 1401749710 ?>

Çıktı 1401749710 gibi 10 haneli bir rakam oldu. Bu rakam içinde bulunduğumuz o anki saniyedir ve bu rakam sayesinde, gün, ay, yıl saat, dakika ve saniyeye erişebiliriz.

Şimdi biraz daha genişletelim ve zaman dilimimizi İstanbul yapalım, ardından o anki zamanı alalım ve zaman formatıyla ekrana yansıtalım;

Örnek



<?php date_default_timezone_set('Europe/Istanbul'); $simdi = time();

o halde veritabanında tablo alanımızı INTEGER olarak ayarlıyoruz ve kaydederken time() değeri kaydededildi.

Bir takvim ya da bir text vasıtasıyla girilen formatlı bir tarihin, time değerini nasıl alacağız? Bu karşılacağımız temel bir sorundur. Bu durumda ise işlemin tersini yapacağız yani nasıl ki üstteki örnekte time değerini tarih formatına çevirdik ve sonucu elde ettik ise, şimdi tarih formatıyla girilen değeri time stamp değerine dönüştüreceğiz.



<?php $secilen_tarih = '03.06.2014'; $parcala = explode('.', $secilen_tarih); $al = $parcala[2].
'-'.$parcala[1].'-'.$parcala[0]; $gdate = new DateTime($al); echo $gdate->getTimestamp();
?>

Veritabanına kaydederken time(), okurken date formatına çevireceğiz, tarih formatlı aramalarda ise aranan tarihleri bir üstteki kodlarda olduğu gibi time değerine çevirecek ve sorgulayacağız. Bu şekilde tarih işlemleri çok daha verimli olur