Yükleniyor

Php tarih işlemleri ile istediğiniz tarih ve zaman ayarlarını yapabilirsiniz. Php de geçmiş tarihi ve zamanı, php de gelecek tarihi ve zamanı ayrıca php de iki tarih arasındaki farkı ve iki saat arasındaki farkı rahatlıkla bulabilirsiniz. Bu işlemlerin hepsini yapmak oldukça basittir ve php de tarih ayarları oldukça fazla bir şekilde kullanılmaktadır. Zaman ayarlarında date fonksiyonu kullanılmaktadır.

Her şeyden önce hangi zaman diliminde çalıştığınızı tarih işlemlerinizden önce belirmeniz gerekmektedir. Bu işi gören date_default_timezone_set fonksiyonudur. Eğer belirtmezseniz çalıştığınız sunucu ayarındaki zaman dilimini ele alır ve ya kişinin giriş yaptığı ülkeye göre alır. Kısaca biraz sapıtır ve doğru çalışmaz. Bu yüzden belirtmeniz gerekmektedir.

Türkiye için kullanılan zaman dilimi aşağıdaki gibidir.

<?php
date_default_timezone_set('Europe/Istanbul');
//Her ülkenin kodu vardır => date_default_timezone_set('ULKE_ZAMAN_DILIMI');

echo date("d-m-Y");
//Ekran çıktısı olarak o an ki zamanı gün-ay-yıl formatında verir.
?>

Tabi php date fonksiyonun özel karakterleri vardır. Bunlar günü, ayı, yılı, saati, dakikayı, saniyeyi vb. özel olarak belirtmemizi sağlar. Aşağıdaki tabloda bunları bulabilirsiniz.

Karakter Açıklama Örnek Çıktısı
d 1'den 9'a kadar olan günleri iki haneli olarak verir. (En çok kullanılandır.) 08
j 1'den 9'a kadar olan günleri tek haneli olarak verir. 8
m 1'den 9'a kadar olan ayları iki haneli olarak verir. (En çok kullanılandır.) 03
n 1'den 9'a kadar olan ayları tek haneli olarak verir. 3
Y Yıl değerini 4 haneli olarak verir. (En çok kullanılandır.) 2020 ve ya 2021 gibi
y Yıl değerini 2 haneli olarak verir, son iki rakamı gösterir. 20 ve ya 21 gibi
H 24 saat biçiminde saat değerini verir. 00 ile 23 arasındakiler. 10 ve ya 13 gibi
i Dakika değerini verir. 0 ile 60 arasındakiler. 10 ve ya 50 gibi
s Saniye değerini verir. 0 ile 60 arasındakiler. 10 ve ya 50 gibi
l (küçük L harfi) Günleri ingilizce olarak verir. Monday
F Ayın adını ingilizce olarak verir. August
z Yılın günlerini sayısal değer olarak verir. 0 ile 365 arasındakiler. 10 ve ya 100 gibi

Örnek Kullanımlar

Aşağıda kullanımlarına dahil bir kaç örnek ile daha iyi anlayabilirsiniz.

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

echo "Şuan ki Tarih ve Saat = " . date("d-m-Y H:i:s");
// Çıktı: 26-05-2021 15:16:06
//Ekran Çıktısı: Çalıştırdığınız zaman o an ki tarihi GÜN-AY-YIL SAAT:DAKİKA:SANİYE biçiminde verecektir.
echo "<br />";

echo  "Şuan ki Tarih = " . date("d-m-Y");
// Çıktı: 26-05-2021
//Ekran Çıktısı: Çalıştırdığınız zaman o an ki tarihi GÜN-AY-YIL biçiminde verecektir.
echo "<br />";

echo "Şuan ki Saat = " . date("H:i:s");
// Çıktı: 15:16:06
//Ekran Çıktısı: Çalıştırdığınız zaman o an ki tarihi SAAT:DAKİKA:SANİYE biçiminde verecektir.
echo "<br />";


echo "Şuan ki Ayın Günü, Ayın Adı, Yıl, Gün ve Saat" . date('d F Y l H:i:s');
// Çıktı: 26 May 2021 Wednesday 15:19:42
echo "<br />";

echo "Şuan ki Ayın Günü, Ayın Adı, Yıl ve Gün " . date('d F Y l');
// Çıktı: 26 May 2021 Wednesday
?>

Görünüm formatlarını istediğiniz gibi ayarlayabilirsiniz;

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

echo "Şuan ki Tarih ve Saat '-'  ve ':' İşareti İle Ayrıldılar = " . date("d-m-Y H:i:s");
//Çıktı: 26-05-2021 15:21:58
// ## Bu yöntem en çok tercih edilenidir. Çünkü veri tabanlarının formatları bu işaretlerledir.
echo "<br />";

echo "Şuan ki Tarih ve Saat '-' İşareti İle Ayrıldılar = " . date("d-m-Y H-i-s");
//Çıktı: 26-05-2021 15-21-58
echo "<br />";

echo "Şuan ki Tarih ve Saat '.' İşareti İle Ayrıldılar = " . date("d.m.Y H.i.s");
//Çıktı: 26.05.2021 15.21.58
echo "<br />";

echo "Şuan ki Tarih ve Saat '/' İşareti İle Ayrıldılar = " . date("d/m/Y H/i/s");
//Çıktı: 26/05/2021 15/23/20

//Görmüş olduğunuz üzere harfler arasındaki işaretler görünüm şekillerini ayarlar.
?>

Dizilim formatlarını istediğiniz gibi ayarlayabilirsiniz;

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

echo "Şuan ki Önce Saat ve Sonra Tarih = " . date("H:i:s d-m-Y");
//Çıktı: 15:28:12 26-05-2021
?>

Php time() ve php mktime() Fonksiyonu

Bu php fonksiyonların kullanımları aynıdır. İkisi de şu anki zamanı unix zaman damgası cinsinden yazar. Tek farkı mktime() fonksiyonuna ikinci bir parametre ekleyerek unix zaman damgası biçiminde almayı sağlayabilirsiniz. Eğer parametre eklemezseni o anki zamanın unix zaman damgasını döner.

Unix zaman damgası; 1 Ocak 1970 00:00:00 tarihinden itibaren günümüze kadar geçen saniye cinsinden süresidir.

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

echo time() . "<br>";
echo mktime() . "<br>";
//Çıktı: 1622295714
?>
Php mktime() ile bir tarihin unix zaman damgası değerini öğrenebilirsiniz. Farkları burada devreye giriyor.
Girilen parametrelerin düzeni: saat, dakika, saniye, ay, gün, yıl, yaz-kış saati
## 7. parametre olan "yaz-kış saati" dediğimiz alana varsayılan değer -1 atanır. Eğer yaz-kış saati uygulaması olan bir ülkede ve ya herhangi bir işlemde kullanıyorsanız 1 değerini atamanız gerekmektedir, olmadığı durumlarda ise 0 değer atanır.(ÇOK FAZLA KULLANILMAZ. GENELDE BOŞ BIRAKILIR.)
<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

$saat = 13;
$dakika = 45;
$saniye = 10;
$ay = 05;
$gun = 29;
$yil = 2020;

echo mktime($saat, $dakika, $saniye, $ay, $gun, $yil);
//Çıktı: 1590749110
?>

Php strtotime() fonksiyonu

Php strtotime yazılı bir tarihi(tarih formatında) unix zaman damgasına çevirir. Ayrıca tarih işlemlerinde(toplama-çıkarma) kullanılır. Tarihlere gün, ay, yıl, saat, dakika, saniye ekleyip ve çıkartabiliriz.

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

echo strtotime('29.05.2021 17:15');
//Çıktı: 1622297700
//Girilen zamanı unix zaman damgası biçiminde verdi.

//DİĞER FORMATLARDA DA KULLANILABİLİR;
$tarih = strtotime('29-05-2021');
$saat = strtotime('17:15:40');
//Ekran çıktıları unix zaman damgası biçiminde olacaktır.
/*
## Tarih ve saat aralarındaki ':', '-', '/' işareterin bir önemi yoktur. Sadece görüntü anlamında değişiklik gösterir.
## Arkaplandaki işlemler aynı şekilde devam eder.
*/
?>
Php strtotime fonsiyonu ile toplama ve çıkarma işlemlerinde ingilizce terimler kullanılır ve tamamen düz mantıktır. Tabi bize unix zaman damgası biçiminde döndüğü için date fonksiyonu ile düzgün formata getirebiliriz.
<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

$birGunSonrasi_ve_birSaatOncesi = strtotime('+1 day, -1 hour');
//Şuan ki zamana 1 gün ekledi ve 1 saat çıkardı.

$birHaftaOncesi = strtotime('-1 week');
//Şuanki zamandan 1 hafta çıkardı.

$birYilSonrasi = strtotime('+1 years');
//Şuanki zamana 1 yıl ekledi.
?>
Tabi yukarıdaki örnekler bize unix zaman damgası biçiminde döndüğü için date() fonksiyonu ile düzgün formata getirebiliriz. Tarih ayırma işaretlerini istediğiniz gibi ayarlayabilirsiniz.
<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

$birGunSonrasi_ve_birSaatOncesi = strtotime('+1 day, -1 hour');
echo date('d-m-Y H:i:s', $birGunSonrasi_ve_birSaatOncesi) . " <br />";
//Çıktı: 30-05-2021 16:33:04
//Şuan ki zamana 1 gün ekledi ve 1 saat çıkardı.

$birHaftaOncesi = strtotime('-1 week');
echo date('d.m.Y H:i:s', $birHaftaOncesi) . " <br />";
//Çıktı: 22.05.2021 17:33:04
//Şuanki zamandan 1 hafta çıkardı.

$birYilSonrasi = strtotime('+1 years');
echo date('d/m/Y H/i/s', $birYilSonrasi) . " <br />";
//Çıktı: 29/05/2022 17/33/04
//Şuanki zamana 1 yıl ekledi.

//KAFALAR AMA NASIL GÜZEL :)
echo date('d-m-Y H:i:s', strtotime('+3 years -3 weeks +4 months -3 hour -25 minutes'));
//Çıktı: 08-09-2024 14:15:33
/*
YAPILAN İŞLEMLER SIRASIYLA;
şuanki zamana 3 yıl ekledi, 3 hafta çıkardı, 4 ay ekledi, 3 saat çıkardı ve 25 dakika çıkardı.
ekrana belirttiğimiz formatta yazdı.

Çok değişik bir örnek oldu, farkındayız :)
Ancak gördüğünüz gibi herşeyi tek seferde hallettik.
*/
?>