PHP Tarih Ve Zaman Fonksiyonları

PHP Tarih ve Zaman Fonksiyonları

PHP tarih ve zamanı belirlemek için Unix standartlarını kullanır. Unix zaman damgaları (timestamp) 1 Ocak 1970 tarihinden başlayarak basitçe saniyeler üzerinden hesaplamalar yapılmasını sağlar. Örneğin şu anki zaman damgasını (timestamp) bulmak için time fonksiyonunu kullanabiliriz.

Çıkan sonuç biraz şaşırtabilir. Çünkü hesaplamalar başta belirttiğimiz üzere geçen saniye üzerinden yapılır. Örneğin bir hafta sonrası için timestamp değerini bulalım. Bunun için 7 gün, 24 saat, 60 dakika ve  60 saniyeyi şu anki değere eklememiz gerekir.

İkinci satırda bir sonraki haftayı bulmak için geçen süreyi saniye olarak ekledik. Verilen bir zamana göre timestamp oluşturmak istenirse mktime fonksiyonu kullanılmalıdır. Küçük bir bilgi verdikten sonra zaman damgasının tarih ile birlikte nasıl kullanılabileceğini açıklayalım.

Burada şu soru aklınıza gelebilir: Neden sadece 1970 senesi ile 2038 arasını kullanabiliyoruz? Aslında cevabı biraz ilginç. Unix geliştiricileri 1970 senesinde geliştirmeye başladıkları sistemde daha öncesine gitmeyi gerek görmedikleri ve Unix’in 70 sene sonra kullanılacağını düşünmedikleri için bu durumu tercih ettiler. Bu sorunlar PHP 5.1 ve 5.2 sürümleriyle aşıldı.

PHP ile tarihi kullanmak için date fonksiyonundan yararlanıyoruz. date fonksiyonu sayısız diyebileceğimiz kullanım çeşitliliğine sahiptir. Syntax’ı altta verilmiştir.

Zaman damgasını (timestamp) daha önce açıklamıştık. Format kısmında ise bir string ifade kullanacağız. Örneğin zamanı saat, dakika ve saniye olarak yazdıralım.

İlk satırda kullandığımız date_default_timezone_set ile varsayılan saat dilimini İstanbul olarak ayarlıyoruz. Bunu yapmadığınız taktirde farklı saat dilimine göre bir sonuç elde edebilirsiniz. Şu an hangi konumun kullanıldığını öğrenmek için date_default_timezone_get fonksiyonunu kullanabiliriz.

Yukarıdaki gibi ekrana yazdırdığımızda hangi konuma ayarlı olduğunu görebilirsiniz. Bir başka örnekte ise şu anki tarihi yazdıralım.

Copyright metnini otomatik olarak yenilenen hale getirebiliriz.

Yukarıdaki kullanım şekliyle date fonksiyonu kullanılarak içinde bulunduğumuz sene Copyright metni ile birlikte ekrana yazdırılabilir.

Date Fonksiyonun Alabileceği Değerler

String ifadenin alabileceği değerleri ve açıklamaları aşağıda verilmiştir.

Günler

  • d: ayın günlerini sayı ile gösterir.tek haneli sayıların başında sıfır bulunur | 01-31
  • D: ayın günlerini 3 harf kullanarak gösterir | Mon – Sun
  • j: ayın günlerini başında sıfır olmadan sayılarla gösterir | 1-31
  • l: haftanın günlerini tam isim olarak gösterir | Sunday – Saturday
  • N: haftanın günlerini sayı ile gösterir. Pazartesiden pazara doğru hesaplar | 1-7
  • S: sayı ile gösterilen günün sonuna sonek ekler. | st, nd, rd, th
  • w: haftanın günlerini gösterir. Pazar gününden başlar. | 0-6
  • z: senenin hangi günü olduğunu gösterir. | 0-365

Haftalar

  • W: Yılın hangi haftasında olduğunu gösterir. | 01-52

Aylar

  • F: Ayları isim olarak gösterir. | January – December
  • m: Ayları başlarında sıfır olacak şekilde sayıyla gösterir. | 01-12
  • M: Üç harf ile kısaltma yaparak gösterir. | Jan – Dec
  • n: Başında sıfır olmadan sayıyla gösterir. | 1-12
  • t: Aydaki toplam gün sayısını verir. | 28-31

Seneler

  • L: Artık yıl kullanımını sağlar. | 0-1
  • y: Seneleri iki hane ile gösterir. | 00-99
  • Y: Seneleri dört hane ile gösterir. | 0000-9999

Zaman 

  • a: Öğleden önce veya sonra olduğunu belirtmek için kullanılır. Küçük harfle gösterilir. | a.m. – p.m.
  • A: Öğleden önce veya sonra olduğunu büyük harfle gösterir. | A.M. – P.M.
  • g: 12 saat formatında saati gösterir. Başında sıfır bulunmaz. | 1-12
  • G: 24 saat formatında saati gösterir. Başında sıfır bulunmaz. | 00-23
  • h: 12 saat formatında başında sıfır olacak şekilde saati gösterir. | 01-12
  • H: 24 saat formatında başında sıfır olacak şekilde saati gösterir. | 00-23
  • i: Dakikaları gösterir. | 00-59
  • S: Saniyeyi gösterir. | 00-59

Tarih Sabitleri

Tarihleri çeşitli forrmatlarda kullanmak için pek çok kullanışlı PHP sabiti bulunmakta. En fazla kullanılanları açıklayalım.

  • DATE_ATOM: Atom beslemeleri için kullanılır. PHP formatı “Y-m-d\TH:i:sP” olur.
  • DATE_COOKIE: Sunucular veya Javascript tarafından belirlenen çerezler için kullanılır. PHP formatı “l, d-M-y H:i:s T” olur.
  • DATE_RSS: RSS beslemeleri için kullanılır. PHP formatı “D, d M Y H:i:s O” olur.
  • DATE_W3C: World Wide Web konsorsiyumu tarafından belirlenen formattıtr. “Y-m-d \TH:i:sP” olarak gösterilir.

checkdate Kullanımı

Tarihlerin farklı formatlarda nasıl gösterileceğini açıkladık. Bunun yanında bir kullanıcının örneğin formdan girdiği tarihin geçerli olup olmadığını nasıl kontrol edeceğimizi de anlatalım. checkdate fonksiyonu girilen ay, gün, yıl değerlerinin geçerli olup olmadığını kontrol eder. Eğer geçerli ise TRUE, değilse FALSE döndürür. Örneğin kullanıcı 30 Şubat gibi geçersiz bir tarih girebilir. checkdate fonksiyonu ile nasıl kontrol edebileceğimizi bir örnekle açıklayalım.

Yukarıdaki örnek çalıştırıldığında ekrana tarihin geçerli olmadığı yazacaktır.

 

Yorum Yazın

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

error: