PHP’de Tarih ve Saat İşlemleri
Php’de tarih ve saat işlemleri önemli bir yer tutar yapacağımız web sitelerinde tarih ve zaman fonksiyonlarını sürekli kullanacağız, örneğin bir e-ticaret sitesinde ürünün sipariş tarihini, kargo tarihini veya bir makale yazarken makalenin yazılma tarihini kaydettirmemiz gerekir işte böyle durumlarda zaman işlemlerine ihtiyaç duyuyoruz.
date_default_timezone_set();
Bu fonksiyon ile PHP’de bulunduğumuz lokasyonu ve kullandığımız saat dilimini belirtiyoruz ki yanlış bir saat ve tarih olmasın aksi taktirde server saat ve tarihi varsayılan olarak gelecektir.
Örneğin biz Türkiyede olduğumuz için date_default_timezone_set(‘Europe/Istanbul’); şeklinde bu fonksiyonu kullanacağız.
date()
date() fonksiyonu PHP’de tarih ve saat işlemlerini yapıtığımız fonksiyon kullanımına gelin beraber bakalım
1 2 3 4 5 |
<?php echo date("d-m-Y H:i:s"); ?> |
temel olacak bu şekilde kullanılıyor peki bu d-m-y H:i:s ne demek işte cevabı aşağıdaki tabloda:
Harf | Açıklaması | Örnek |
---|---|---|
d | İki haneli olacak şeklinde günü verir | 31 |
D | Gün adlarını üç haneli olacak verir | Pzt |
j | Gün adlarını 0 dolgusuz verir | 1-31 |
m | İki haneli olacak şeklinde ayı verir | 01 |
n | Ay verir fakat 0 dolgusuz | 1-12 |
M | Ay adlarını 3 Harf olarak verir | Jan |
Y | Dört haneli olacak şeklinde yılı verir | 2020 |
H | İki haneli ve 24 saat formatında saati verir | 21 |
i | İki haneli şeklinde dakikayı verir | 45 |
s | İki haneli şeklinde saniyeyi verir | 05 |
l | İngilizce olacak şekilde Gün adını verir | Sunday |
F | İngilizce olarak Ay adını verir | August |
Üstteki tablodaki gibi date fonksiyonunu kullanıyoruz date() fonsksiyonu 2 parametreli 2.parametresi ise Unix time yani unix zaman damgası alır şimdi unix time nedir ona bakalım.
Unix Time
Unix time 1 Ocak 1970 den bulunduğumuz tarihe kadar geçen saniyedir.Peki bunu nasıl bulacağız ?,bunun için time() fonksiyonunu kullanacağız time() fonksiyonu bu şekilde bize 1 ocak 1970’den bugüne geçen zamanı saniye cinsinden verir bir kaç örnekle daha iyi anlayacağız.
1 2 3 4 5 6 7 8 9 |
<?php echo time(); //çıktı:1580493613 1970'den bugüne geçen süre saniye cinsinden echo date("d-m-y H:is",1580493613); //çıktı:31-01-20 19:00:13 sonucunu verir. ?> |
Peki biz herhangi bir tarihi Unix time olarak nasıl alacağız ?
Böyle bir sorunumuz olduğunda ise imdadımıza mktime() fonksiyonu yetişiyor mktime() fonksiyonunda bir tarih giriyoruz ve oda bize girdiğimiz tarihini Unix time olarak bize veriyor.
mktime() parametreleri belli bir sıralama ile giriliyor sıralama şu şekilde saat, dakika, saniye, ay, gün, yıl şeklinde oluyor ,aralarına virgül koyuyoruz.
Örneğin 2 Mayıs 1988 tarihi ve 21:45:00 saatini unix time damgasına çevirelim.
1 2 3 4 5 6 7 8 9 |
<?php echo mktime(21,45,00,11,27,2019); //Çıktı 1574887500 şeklinde. ?> |