PHP de TIME ZONE sorunu

PHP kodlamasında time ve Date nimetlerinden faydalanmanın güzel oldugu kadar. içinden çıkılmaz bir durumda alabiliyor.

Son günlerde farkına vardığım bir sorunu buradan paylaşmayı düşündüm.

Kayıt alırken aşağıdaki iki zaman birbirine eşit..
strtotime('2010-02-27 20:40:03 +0000') === strtotime('2010-02-27 21:40:03 +0100')

ve yukarıdaki time olarak alinan kayit +0200 zaman diliminde olan bir serverden çağrıldıgında ise yukarıdaki tarih bize 2010-02-27 22:40:03 +0200 olarak dönüyor..

Yerel saatçilikte eş bir durum..

Ancak şöyle düşünün sabit bir saat istiyorsanız. hangi serveri kullanırsanız kullanın ister bugün veritabanınız japonyada olsun isterse yarın amarikada.. ya da ertesi gün fransada. ama siz eklediğiniz tarihli bir verinin aynı yerde aynı tarihi göstermesini istiyorsunuz ne yapacaksınız?

gmDate sanırım burada imdadımıza yetişiyor. Öncelikle böyle kritik zamanınız varsa strtotime('2010-02-27 20:40:03 +0000') ya da gmmktime şeklinde kayıda alırken çağırırken de gmdate() fonksiyonu ile çağırıyoruz..

en zor kısmıda sanırım geçmişte zaman aralığı dikkat edilmeden alınan kayıtların düzenlenmesi olsa gerek. GMT farkı olmadığı sürece sorun olmıyacaktır..

Sorunumuz da burada başlıyor. PHP ile ilk kayıt GMT zaman aralığını nasıl bulacağız? Geçmişte bir kayıt içinde birden çok farklı GMT aralığı varsa bunları nasıl ortaya çıkaracağız?

Yeni yorum gönder

Bu alanın içeriği gizli tutulacak ve açıkta gösterilmeyecektir.
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Satır ve paragraflar otomatik olarak bölünürler.

Biçimleme seçenekleri hakkında daha fazla bilgi

Anket

Web sitesinde hangisi daha önemlidir: