2009-06-16 28 views
6

Ich habe eine Anwendung, die Zend_Date verwendet, um Daten anzuzeigen. Zend_Date-Instanzen werden unter Verwendung von Datetime-Daten von MySQL, Benutzereingaben und dem aktuellen Datum erstellt.Umgang mit Daten und Zeitzonen, mit Zend_Date

Ich möchte für meine Benutzer in der Lage sein, ihre Zeitzone und alle Daten in ihrer lokalen Zeit angezeigt werden.

Im Moment mein Code wie folgt funktioniert:

$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 

Dies funktioniert, erfordert aber einen setTimezone Anruf an jedem Tag. Gibt es eine einfachere Möglichkeit, Zeitzonen zu verwalten?

Ich habe auch mit SET time_zone mit MySQL, um angepasste Daten von MySQL zurückgegeben. Dann müsste ich nur Daten anpassen, die in PHP-Skripten für Zeitzonen erstellt wurden.

Ich würde gerne den besten Weg hören, damit umzugehen, wenn jemand Erfahrung hat.

Dank

Antwort

7

Ich denke, dass die PHP-Zeitzone einstellen soll den Standard für alle nachfolgenden Zend_Date Instanzen gesetzt. Zum Beispiel:

date_default_timezone_set('Europe/Vienna'); 

Vom Zend_Date section in the Zend Framework Reference Guide:

In PHP können wir alle Datum und Uhrzeit bezogenen Funktionen anpassen für einen bestimmten Benutzer zu arbeiten, indem eine Standard-Zeitzone Einstellung entsprechend den Erwartungen des Nutzers. Beim Erstellen von Zend_Date-Instanzen wird ihre Zeitzone automatisch zur aktuellen Standardzeitzone!

+2

Danke. Es scheint, dass der beste Weg für mich ist, UTC als Standard festzulegen, intern mit UTC Datetime zu arbeiten und setTimezone zu verwenden, um zeitzonenspezifische lokale Zeiten zu erzeugen. –

1

Ich denke, du könntest den Zend_Locale nutzen, ein paar Dokumente darüber lesen, ziemlich sicher, dass du es zum Laufen bringen könntest. Auf der anderen Seite, wenn du Zend_Cache und Zend_Locale/Zend_Date verwendest, hilft das, die Geschwindigkeit um einiges zu verbessern. Es gibt auch Anwendungsbeispiele in den zend Framework-Dokumenten.