Php Zaman Fonksiyonları (Tarih ve Saat)

php-zaman-fonksiyonlari-banner

Php zaman fonksiyonları php programlamada oldukça sık kullanılır. Her projede zaman unsuru vardır. Zaman unsurlarını php programlamada biçimlendirmek için php zaman fonksiyonlarına başvururuz. Bu konuda sık kullanılan zaman fonksiyonlarına göz atacağız.

date() Php Zaman Fonksiyonları (İşlevleri)

En kolay zaman damgası oluşturma ve biçimlendirme fonksiyonudur. İki parametre alır. Birinci parametre zaman damgasını biçimini belirlemek için kullanılır. İkinci parametre zorunlu değildir varsayılan olarak time() fonksiyonunun değeridir.

Tarih biçimini belirlemek için oldukça fazla biçim değeri vardır. Bu değerlerin en sık kullanılanları inceleyeceğiz.

Biçim Açıklama Görünüm
d Günlerin sıfır dolgulu gösterimi için kullanılır. 01 – 31 arası
D Günlerin 3 harfli kısa gösterimi için kullanılır. Pzt – Paz arası
j Günlerin sıfır dolgusuz gösterimi için kullanılır. 1 – 31 arası
N Hafta günlerinin sayısal gösterimi için kullanılır. 1 – 7 arası
w Hafta günlerinin sayısal gösterimi için kullanılır. 0 (Pazar) – 6(Cumartesi) arası
W Yılın hafta numarısını göstermek için kullanılır. Örnek : Yılın 35. haftası
F Ayın tam gösterimi için kullanılır. Mart – Nisan (March – April)
m Ayın sıfır dolgulu gösterimi için kullanılır. 01 – 12 arası
M Ayın kısa gösterimi için kullanılır. Mar – Nis (Mar – Apr)
n Ayın sıfır dolgusuz gösterimi için kullanılır. 1 – 12 arası
Y Yılın tam 4 haneli tam gösterimi için kullanılır. 2019
y Yılın iki haneli kısa gösterimi için kullanılır. 19
i Sıfır dolgulu dakika gösterimi için kullanılır. 00 – 59 arası
s Sıfır dolgulu saniye gösterimi için kullanılır. 00 – 59 arası
t Belirtilen ayın gün sayısını göstermek için kullanılır. 28 – 31 arası

Örnek kullanım:

Basit örneklerle bir kaç biçimin kullanımını görelim.

<?php 
/* date("Y-m-d") şeklinde biçim değerlerinin yerini değiştirebilirsiniz. */
echo "Bugünün Tarihi ". date("d-m-Y H:i:s") ."<br />"; 

echo "Yılın ". date("z") . ". günü <br/>";

echo "Yılın ". date("W") . ". haftası <br/>";

/*Sonuç ingilizce çıkacaktır. Bunu Türkçe yapmak için fonksiyon yazan var. 
str_replace ile yapan var.
İf yapısından geçiren var.
Switch yapısından geçiren var. 
Varda var orası sizin isteğinize kalmış. 
Ancak en mantıklısı fonksiyondur.*/
echo "Tam ay yazdırımı :" .date("d F Y"). "<br/>"; 

echo "İçinde bulunduğumuz ay :" .date ("F"). " ve ". date("t") ."gündür.";
?>

Genel olarak kullanım şekilleri bu tarzdır. Diğer biçim parametrelerini deneyerek gözlemenizi öneririm. Php zaman fonksiyonları ile ay ve gün değerleri yazdırılırken İngilizce sonuç döndürmektedir. Basit bir şekilde Türkçe yapmak için fonksiyon oluşturabilirsiniz. Zamanında aşağıdaki fonksiyonu yazmışım ve bunu kullanıyorum. Bu fonksiyonun aynısı daha kısa bir şekilde de yapılabilir. İhtiyacımı gördüğü için güncelleme gereği duymadım. Yukarıdaki örnek içinde ay değerini metin olarak yazdırmıştım. Ancak aşağıdaki fonksiyonda ay değeri sayısal olarak alınmaktadır. Fonksiyona uygun değeri göndermeyi unutmayın.

Örnek kullanım:

function getAy($ay)
{
    if ($ay == "01" || $ay == "1") {
        $ay = "Ocak";
    } else if ($ay == "02" || $ay == "2") {
        $ay = "Şubat";
    } else if ($ay == "03" || $ay == "3") {
        $ay = "Mart";
    } else if ($ay == "04" || $ay == "4") {
        $ay = "Nisan";
    } else if ($ay == "05" || $ay == "5") {
        $ay = "Mayıs";
    } else if ($ay == "06" || $ay == "6") {
        $ay = "Haziran";
    } else if ($ay == "07" || $ay == "7") {
        $ay = "Temmuz";
    } else if ($ay == "08" || $ay == "8") {
        $ay = "Ağustos";
    } else if ($ay == "09" || $ay == "9") {
        $ay = "Eylül";
    } else if ($ay == "10") {
        $ay = "Ekim";
    } else if ($ay == "11") {
        $ay = "Kasım";
    } else if ($ay == "12") {
        $ay = "Aralık";
    }
    return $ay;
}

Fonksiyonlar nedir, nasıl oluşturulur bilmiyorsanız Php Fonksiyonlar konusuna göz atabilirsiniz.

time() Unix Zaman Fonksiyonu

time() komutu çalıştırıldığında sistem saatini saniye cinsine çeviren Unix fonksiyondur. Unix zaman damgası 1 Ocak 1970‘den başlar ve time fonksiyonu çalıştırıldığında günümüz tarihi ile Unix başlangıç tarihi arasında geçen süreyi saniye cinsinden döndürür. 

Örnek kullanım:

<?php 
echo time(); // Ben bu komutu çalıştırdığımda 1552576489 bu saniye değerini elde ettim.

echo date('d.m.Y H:i:s', 1552576489);
?>

Date fonksiyonunun iki parametre aldığını, boş bırakılırsa varsayılan olarak time() fonksiyonunun oluşturduğu Unix zaman damgası olduğunu ve ikinci parametrenin Unix damgasında değer aldığını söylemiştik. Yukarıdaki örnekte ikinci parametre olarak time() fonksiyonunun sağladığı Unix zaman damgasını gönderdim ve date() fonksiyonu ile unix zaman damgasını tarih biçimine çevirdik. 

Time fonksiyonundan elde edilen saniye verisi saat, dakika, saniye olarak bölünüp tarih elde edilebilir ancak bunu zaten date() fonksiyonu yaptığı için uzun işlem yapmaya pek gerek kalmıyor.

Time fonksiyonu ile Unix damgasında zaman ürettik peki istediğimiz tarihi nasıl Unix damgasına çevireceğiz dediğimizde yardımımıza mktime() fonksiyonu yetişiyor.

mktime() Zaman Fonksiyonu

Bu fonksiyon istediğimiz tarihi Unix zaman damgasına çevirmek ve zaman farkını için kullanılıyor. Unix damgasında tarihler arası karşılaştırma yapmak daha basit olduğu için tarih bilgileri Unix zaman damgasına çevrilir.

mktime(saat, dakika, saniye, ay, gün, yıl);

Örnek kullanım:

<?php 
$bugun = time(); 
$gecmis_zaman = mktime (22, 40, 01, 07, 07, 2015);

$gecen_sure = $bugun - $gecmis_zaman;

echo "Bugün unix damgası :".$bugun ."<br />";
echo "07/072015 22:40:01 unix damgası :".$gecmis_zaman ."<br />";
echo "Geçen süre unix damgası :".$gecen_sure ."<br />";

/* Geçen süre*/
$dakika = $gecen_sure / 60;
$saniye_farki = floor($gecen_sure - (floor($dakika) * 60));
 
$saat = $dakika / 60;
$dakika_farki = floor($dakika - (floor($saat) * 60));
 
$gun = $saat / 24;
$saat_farki = floor($saat - (floor($gun) * 24));
 
$yil = floor($gun/365);
$gun_farki = floor($gun - (floor($yil) * 365));
 
echo $yil . ' yıl ';
echo $gun_farki . ' gün ';
echo $saat_farki . ' saat ';
echo $dakika_farki . ' dakika ';
echo $saniye_farki . ' saniye ';
?>

Diğer tarih ve saat işlevleri için Php Resmi Sayfasını ziyaret edebilirsiniz.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir