Zend_Date ile, tarih ve saat dilimleri ile başa çıkmak

2 Cevap php

Ben tarihleri ​​görüntülemek için Zend_Date kullanan bir uygulama var. Zend_Date örnekleri MySQL datetime verileri, kullanıcı girişi ve geçerli tarih kullanılarak oluşturulur.

Benim kullanıcıların kendi dilimini belirtmek ve yerel saat görüntülenecek tüm tarihler için edebilmek için isterim.

Şu anda benim kod şöyle çalışıyor:

$date = '2009-01-01 10:30:00';

$date = new Zend_Date($date, Zend_Date::ISO_8601);

echo $date->get(Zend_Date::TIME_MEDIUM); //10:30:00

$date->setTimezone('Australia/ACT');

echo $date->get(Zend_Date::TIME_MEDIUM); //21:30:00

Bu çalışır, ama her tarihte bir setTimezone aramayı gerektirir. Timezones yönetmek için kolay bir yolu var mı?

Ben de MySQL düzeltilmiş verileri döndürmek için, MySQL ile SET TIME_ZONE kullanılarak bakarak oldum. Sonra sadece zaman dilimleri için PHP içinde oluşturulan tarihlerini ayarlamak gerekir.

Birisi deneyimi varsa, bu işlemek için en iyi yolu duymak isteriz.

Teşekkürler

2 Cevap

Ben PHP dilimini ayar sonraki tüm Zend_Date örnekleri için varsayılan ayarlamak gerektiğini düşünüyorum. Örneğin:

date_default_timezone_set('Europe/Vienna');

Kimden Zend_Date section in the Zend Framework Reference Guide:

PHP, biz kullanıcının beklentilerine göre varsayılan bir zaman dilimini ayarlayarak belirli bir kullanıcı için çalışmak tüm tarih ve saat ile ilgili fonksiyonları ayarlayabilirsiniz. Zend_Date örnekleri oluştururken, kendi dilimi otomatik olarak geçerli varsayılan zaman dilimi olacak!

Ben, bu konuda bazı dokümanlar okumak, o iş yapmak mümkün olurdu eminim Zend_Locale faydalanmak düşünüyorum. Eğer Zend_Cache ve Zend_Locale / Zend_Date kullanıyorsanız Öte yandan, bu yardım edecek yeraldığını tarafından hızını artırmak kalmış. Zend framework dokümanlar kullanım örnekleri de vardır.