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?


1 yorum

çok faydali bir makale..

bu yararli makaleniz için teşekkür ediyorum..

03.11.2010 - misafir

Konular

Hanci.org sizlere daha iyi hizmet sunmak için çerezleri kullanıyor.
Hanci.org sitesini kullanarak çerez politikamızı kabul etmiş olacaksınız.
Detaylı bilgi almak için Gizlilik ve Çerez Politikası metnimizi inceleyebilirsiniz.