Php Tarih ve Saat İşlemleri
Php tarih ve saat işlemlerini nasıl alınabileceği ve çeşitlerini göstermek istiyorum
date_default_timezone_set() Fonksiyonu
Php ile zaman işlemlerini sunucudan doğru ve hatasız almak için komutu ile güncellemek gerekli.
Bunu için date_default_timezone_set() fonksiyonun da kullanacağız.Php'nin desteklediği tüm zaman aralıkları burada
date_default_timezone_set('Europe/Istanbul'); // Türkiyenin bulunduğu zaman aralığı
$betik_zd = date_default_timezone_get(); // Seçili zaman a ralığını ekrana yazdırır
time() Fonksiyonu
Burada önemli olan nokta çıktıyı unix formatında vermesi
Unix formatı nedir derseniz : 1 ocak 1970 yılından bu yana geçen süredeki saniye sayısı olarak size çıktı verir.
echo time();
// Çıktı 1639124620
date() Fonksiyonu
Bu günün Tarihi
echo date("y-m-d");
// Çıktı şu şekilde 2021-12-10
Sadece gün
echo date("d");
// Çıktı 10
Saat Formatında ( dakika )
echo date("Y-m-d h:i");
// Çıktı : 2021-12-10 11:46
Saat Formatında ( saniye )
echo date("Y-m-d h:i:s");
// Çıktı : 2021-12-10 11:46:44
Buraya kadar tarih ve saat işlemlerini öğrendiysek aşadağıdaki tabloda yer alan harflere yazıp çıktıyı alabilirsiniz.
Kod | Açıklama | Çıktı |
d | Günleri bu harf ile alacağız | 27 |
m | Aylar | 07 |
Y | Yıl | 2021 |
H | Saat (Büyük ile yazarsanız 24 saat diliminden küçük ile yazarsanız 12) | 19 |
i | Dakika | 38 |
s | Saniye | 59 |
l |
ingilizce günün adını verir |
Monday |
F | ingilizce ayın adını verir | July |
İleri yada Önceki tarihleri alma
Bunun için strtotime fonksiyonunu kullanmak gerekecek.Bu komut herhangi bir tarihi unix formatına dönüştüyor.Az yukarıda bahsetmiştim unix formatı nedir diye ve tarihe ilave saniye formatında ekleme yapıyor
1 Gün Ekleme
echo date('Y-m-d', strtotime(' +1 day'));
Çıktı şu şekilde 2021-12-11
2 Gün Sonraki Tarihi Alma
echo date('Y-m-d', strtotime(' +2 day'));
Çıktı şu şekilde 2021-12-11
1 Gün Önceki Tarihi Yazdırma
echo date('Y-m-d', strtotime(' -1 day'));
Çıktı şu şekilde 2021-12-11
1 Hafta Sonrası
echo date('Y-m-d', strtotime(' +1
week'));
//Çıktı şu şekilde 2021-12-17
1 Hafta Öncesi
echo date('Y-m-d', strtotime(' -1
week'));
//Çıktı şu şekilde 2021-12-03
1 Ay Sonrası
echo date('Y-m-d', strtotime(' +1
month'));
//Çıktı şu şekilde 2022-01-10
1 Ay Öncesi
echo date('Y-m-d', strtotime(' -1
month'));
//Çıktı şu şekilde 2021-11-10
1 Yıl Sonrası
echo date('Y-m-d', strtotime(' +1
year'));
//Çıktı şu şekilde 2022-12-10
1 Yıl Önceki
echo date('Y-m-d', strtotime(' -1
year'));
//Çıktı şu şekilde 2020-12-10
Bir örnek ile bu yapıyı daha iyi anlatmak istiyorum mesala bu gün ve sonraki 9 günün tarihlerini almak istersek kodlama yapısı bu şekilde olması gerekir
Buı gün ve sonraki 9 günün döngüsünü burada görebilirsiniz
for($sayi = 0; $sayi <= 10; $sayi++) {
echo date('Y-m-d h:i:s', strtotime(' +'.$sayi.' day'));
echo "
";
}Çıktı şu şekilde olacak
2021-12-10 02:17:44
2021-12-11 02:17:44
2021-12-12 02:17:44
2021-12-13 02:17:44
2021-12-14 02:17:44
2021-12-15 02:17:44
2021-12-16 02:17:44
2021-12-17 02:17:44
2021-12-18 02:17:44
2021-12-19 02:17:44
2021-12-20 02:17:44
microtime(); fonksiyonu
1 ocak 1970 yılından itibaren geçen saniye süresinin unix formatında mikrosaniye olarak gösterir
echo microtime(true);
// Çıktı 1639135311.4757
Bir örnekleme ile bugünün tarihini türkçe formatta göstereyim
Diyelim ki veritabanına tarihi bu şekilde kayıt ettiniz 2021-12-10
$tarih = "2021-12-10";
$par = explode('-',$tarih);
$ay = $par[1];
$gun = $par[2];$yil= $par[0];
$aylar = array(
'',
'Ocak',
'Şubat',
'Mart',
'Nisan',
'Mayıs',
'Haziran',
'Temmuz',
'Ağustos',
'Eylül',
'Ekim',
'Kasım',
'Aralık'
);if($ay != 10){
$ay = str_replace("0","", $ay);
}else{
$ay = 10;
}
echo $yil." ".$aylar[$ay]." ".$gun;// Çıktı şu şekilde olacak 2021 Aralık 10
// Buradaki formatı şu şekilde değiştirebilirdik
echo $gun." ".$aylar[$ay]." ".$yil;
// Çıktı şu şekilde olacak 10 aralık 2021
Bir Yorum Bırakabilirsiniz :)