PHP timezone

4 Cevap php

PHP, evnironment dilimini ayarlama bölgesi adlarını kullanarak yerine GMT ofset için oldukça can sıkıcı bir yöntem kullanmak gibi görünüyor. Bu PHP geçmek için geçerli bir değer offset hepsi mümkün PHP timezone değerlerini karşılamak için büyük olmak zorunda, ya ben bir GMT dönüştürmek için bir yol bulmak zorunda, çünkü büyük bir acı dropdown bir dilimini olan yapar.

Yani, ofset GMT verilen, nasıl ben PHP dilimini olabilir? Örneğin, nasıl ben GMT Ben date_timezone_set() ile geçebileceği bir değere "-8,0" ofset değeri dönüştürmek olabilir?

4 Cevap

Bir bölgenin adını kullanarak bir zaman dilimini tanımlamak için right yoludur. Kendi ofset GMT kullanarak derece belirsiz.

Bu söz de yansıyor - nasıl -8 ofset bir GMT zaman dilimi haline dönüştürmek gerekir? Peki, bu "GMT -8" gerçekten ne anlama bağlıdır. O "zaman içinde her noktada -8 UTC" demek ya da "kış döneminde UTC -8 ve UTC -7 yaz saati" demek? Bu ikincisi ise, ne zaman kış başlangıcını ve bitişini yapar?

Ben PHP, örneğin, (hayır DST) "sabit" zaman dilimleri için değerleri iyi bilinen bir dizi kabul hope o olur "Etc / GMT +3" vb Ama gerçekten bir sabit zaman dilimi anlamına aksi hesaplamalar neredeyse bir noktada yanlış olması garanti edilir, çünkü, aslında bahsediyoruz hangi bölge bulmaya daha iyiyiz .

Ben geçen yıl çoğu zaman dilimleri ile güreş oldum. Onlar bir ağrı konum - particularly, bazı bölgeleri DST için kendi kurallarını değiştirdiğinizde (ABD gibi birkaç yıl önce yaptım) ya da bazı bölgeler görünüşte irade DST içinde ve dışında tercih yaparken. Tek bir sayı tüm bu yansıtmaya çalışıyoruz ahmaklıktır. Eğer zaman içinde tek bir anda tek ilgileniyorsanız, tamam olabilir - ama bu noktada size de sadece ilk etapta UTC değer saklayabilir. Aksi takdirde, bir isim iyi yaklaşımdır. (Bu ... sen. Isimleri bile zamanla değişebilir misin, bu noktada mutlaka düz yelken değil)

Eğer> = 5.2 PHP kullanıyorsanız, size yerleşik DateTimeZone sınıfı yöntemi, listAbbreviations kullanabilirsiniz.

var_dump( DateTimeZone::listAbbreviations() );

Bir konumunu saklamak için neden daha iyi olduğunu çeşitli yerlerde gün ışığı tasarruf veri ile bir veritabanını korumak gerekir, bu.

https://github.com/barbushin/dater - Siz de Dater, farklı zaman dilimleri ve formatlarda datetime ile çalışmak için PHP kütüphanesi kullanmayı deneyebilirsiniz