PHP’de Tarih ve Saat İşlemleri

TARİH, SAAT İŞLEMLERİ
PHP’de tarih işlemlerini için kullanacağımız komut date(); komutudur.Bu komutun içerisine bazı parametreler koyarak web sunucusunun tarihini bizlere veriri.Şimdi bu parametlerleri sıralayalım.

a 12 saat esasına dayanan öğleden önce “am” ve öğleden sonraki saatlerde “pm” işaretlerini verir
A Aynı işaretleri büyük harfle yazar
d İki haneli gün sayısını verir
D Üç haneli güngün adı verir Sun gibi
F Ay adlarını tam olarak verir Jenuary gibi
h 12 saat sisteminde saati temsil eder
H 24 saat sisteminde saati temsil eder
g 12 saat sisteminde saatin önüne sıfır koymaz
G 24 saat sisteminde saatin önüne sıfır koymaz
i Dakikayı verir
j Gün sayısını verir sıfır koymaz 1-31
l Uzun gün adını verir
L Yıl olup olmadığını verir.Yıl olduysa 1 değerini olmadıysa 0 değerini verir.
m Sıfır koyarak ay sayısını verir 01-12
M Kısaltılmış ay adını verir
n Sıfır koymadan ay sayısını verir
s Saniyeyi verir
t Beliritilen ayın gün sayısını verir
w Haftanın gün sayısını verir.0.gün Pazardır.
Y 4 haneli yılı verir
y yılın son iki rakamını verir
z yılın gün sayısını verir.

print date(“d/m/Y”)Bu komut şu tarihi verir 24/11/2001
print date(“t/”.“F/”.“Y”); 
Bu komutta şu tarihi verir 30/November/2001
print date(“H:i:s); 
Bu komutta şu saati verir 20:53:43

     Tarih işlemleride böyle.Eğer sistemimize kayıtlı iseniz örnekler kısmında Türkçe tarihin nasıl yapıldığını görebilirsiniz.

Güncel Tarih ve Zaman Bilgilerini Göstermek
Güncel tarih ve saat bilgileri,
echo date(“Y/m/d H:i:s”);

komutuyla yazılabilir. Ekrana dökülecek bilgi, 2001/01/08 18:33:37 gibi bir tarih bilgisi olacaktır. Az önceki listedeki parametreler kullanılarak, içinde bulunulan an istenilen şekilde ekrana dökülebilir. Ekranda, gelecekteki ya da geçmişteki bir tarihi göstermek de mümkündür. Bunun için date() komutuyla birlikte 1970’in 1 Ocak tarihinden itibaren, içinde bulunulan zamana kadar geçen saniye cinsinden bir tamsayı vermek yeterlidir. PHP’de genel olarak tüm tarih işlemleri, Unix işletim sistemlerinin temel aldığı saat, saniye cinsinden 1970 yılbaşından bu ana kadarki toplam saniye miktarı kullanılarak gerçekleştirilir. Örneğin, içinde bulunulan günden 10 gün sonrasının bilgileri hesaplanırken, 1970’den içinde bulunulan güne kadar geçen süre saniye cinsinden hesaplanır, daha sonra üzerine 10 gün için geçmesi gereken saniye sayısı hesaplanıp eklenir ve 10 gün sonrasının tarih bilgileri elde edilir. Tüm bu işlemler PHP tarafından otomatik gerçekleştirilir, ancak PHP yazılımcılannın tarih işlemlerini bu bilgiyi bilerek kullanmaları faydalı olacaktır.

Geçmiş ve Gelecek Tarihleri Belirleme
Bazı durumlarda, bugünden itibaren 90 gün sonrasındaki günün haftanın hangi gününe geleceğin bilmek gibi, ileriye ya da geriye yönelik tarih işlemleriyle uğraşmak gerekebilir. Bu durumda kullanılacak PHP komutu mktimeO komutudur. Bu komut sayesinde geçmiş ya da gelecekteki bir tarihin Unix zamanına erişilir.

mktime(0,0,0,2,28,2001);

komutu 2001’in 28 Şubat’ında saatin 00:00:00 olduğu anın Unix saniye değerini hesaplar. Bu saniye değerini date() komutuna göndererek, 28 Şubat 2001’in gün değerini öğrenebilmek mümkündür. Olayı biraz daha karışık hale getirerek içinde bulunulan günden 90 gün sonrasının Unix saniyesini öğrenmek gerektiğinde

mktime(0,0,0,date(“m”),date(“d”)+90, date(“Y”)) ;

komutu kullanılabilir. İstenirse mktime() komutundan dönen tam sayı değeri echo kullanılarak ekrana basılabilir.

echo mktime(0,0,0,2,28,2001);

komutu ekrana 983311200 değerini yazacaktır. Bu sayı, 1970 Ocak 1 gece yarısından 28 Şubat 2001’e kadar geçen sürenin saniye cinsinden karşılığıdır. mktime() komutuna gönderilecek bilgide her türlü oynamayı yapmak mümkündür. Örneğin

$rasgeletarih = mktime(date(“H”)+24, date(“i”)-150,date(“s”)+45,date(“m”)+31, date(“d”)-50, date(“Y”)-5);

gibi bir komutla, içinde bulunulan saatin 24 saat, 45 saniye, 31 ay sonrasından, 150 dakika, 50 gün ve 5 sene geriye gidildiğindeki zamanın Unix saniyesi öğrenilebilir. Bu saniye değeri daha sonra

echo date(“Y m d H:i:s”,$rasgeletarih) ;

date() değişkenine gönderilerek, o anki tarih ve saat bilgilerine erişilebilir. PHP’de date() komutuna benzer bir tarih komutu daha vardır. Zaman zaman kullanım kolaylığı sağladığı için tercih edilir. getdate() komutu, kendisine gönderilen Unix zamanına karşılık gelen tarih ve zaman bilgilerini bir dizi değişkeni içinde depolar. Dizi değişkenin içinde depolanmış saat, saniye ve diğer tarih bilgilerine ulaşmak için ingilizce karşılıkları kullanılır.

$zaman = getdateO;
echo $ zaman[year];

kodunda, önce getdate() komutu, içinde bulunulan tarih ve zaman bilgilerini $zaman adındaki dizi değişkenine aktarıyor. Daha sonra bu dizi değişkenindeki year, yani yıl bilgisi çağırılıyor. Dizi değişkeninde kullanılabilecek tüm bilgiler şunlardır:

• seconds: Saniye bilgisi için
• minutes: Dakika bilgisi için
• hours; Saat bilgisi için
• mday: Ayın gün bilgisi için
• wday: Haftanın günü bilgisi için
• mon: Yılın kaçıncı ayı bilgisi için
• year: Yıl bilgisi için
• yday: Yılın günü bilgisi için
• weekday: İngilizce haftanın günü bilgisi için
• month: İngilizce ay bilgisi için

PHP, devrik yılları fark etmek ve yanlış tarihleri düzeltmek için otomatik denetleme mekanizmasına sahiptir. PHP’deki checkdate() komutu, bilginin geçerli bir tarih olup olmadığını, girilen ay, gün ve yıl cinsinden denetler.

if (checkdate (2, 29, 2001) >0)
{ echo (“Tarih geçerli”);
} else
{ echo (“Tarih GEÇERSÎZ”);
}

kodu, 29 Şubat 2001 tarihinin geçerii olup olmadığını denetleyerek 2001 senesinde Şubat ayı 29 çekmeyeceği için tarihin geçersiz olduğunu ekrana yazacaktır.

Tarih Bilgilerini Türkçe Yazdırmak
PHP’de tarih işlemlerinde tüm kısaltmalar ingilizce olarak verilmiştir. Türkçe Web sitelerinde bu bilgilerin Türkçe karşılıklarıyla değiştirilerek kullanılması gerekir. Örneğin haftanın hangi gününde olduğumuzu ekrana yazmak için, date() komutuyla haftanın kaçıncı gününde olduğumuzun değerine bağlı olarak, bir değer atanabilir. Bunu yapmanın en kullanışlı yolu, dizi değişkenlerim kullanmaktır. Yapılması gereken date() fonksiyonundan gelecek gün sırasına karşılık gelen gün isimlerinin yazılı olduğu bir dizi değişkeni hazırlamaktır.

$gunler[0] = “Pazar”;
$gunler[1] = “Pazartesi”;
$gunler[2] = “Salı”;
$gunler[3] = “Çarşamba”;
$gunler[4] = “Perşembe”;
$gunler[5] = “Cuma”;
$gunler[6] = “Cumartesi”;
echo $gunler[date(“w”)];

şeklindeki bir kodla içinde, bulunulan gün ekrana yazılacaktır. Benzer şekilde ay bilgileri için de bir dizi değişkeni hazırlanacak,

$aylar[1] = “Ocak”;
$aylar[2] = “Şubat”;
$aylar[3] = “Mart”;
$aylar[4] = “Nisan”;
$aylar[5] = “Mayıs”;
$aylar[6] = “Haziran”;
$aylar[7] = “Temmuz”;
$aylar[8] = “Ağustos”;
$aylar[9] == “Eylül”;
$aylar[10] = “Ekim”;
$aylar[11] = “Kasım”;
$aylar[12] = “Aralık”; echo $aylar[date(“n”)];

şeklinde içinde bulunulan ay ekrana yazılabilir. Sonuçta, Türkçe olarak 28 Şubat 2001 Çarşamba şeklinde tarihi yazdırmak istendiğinde, yukarıda tanımlanan dizi değişkenleriyle birlikte,

echo date(“j”).” “.$aylar[date(“n”)].” “.date(“Y”).” “.$gunler[date(“w”)];

şeklinde kullanım doğru sonucu üretecektir. Daha ufak zaman birimlerine ihtiyaç duyulduğunda, saniyenin altında hassasiyede çalışan microtime() komutu kullanılır. Bu komut hem Unix zamanını,hem de mikrosaniye cinsinden içinde bulunulan zamanı gösterir. microtime() komutu genelde rasgele değerler elde etmek istendiğinde kullanılır.

Be the first to comment

Leave a Reply

Your email address will not be published.


*