Introduction to Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    Chapter 26. Zend_Date

    Table of Contents

    26.1. Einführung
    26.1.1. Immer eine Standardzeitzone definieren
    26.1.2. Warum soll Zend_Date verwendet werden ?
    26.2. Theorie der Arbeitsweise
    26.2.1. Internes
    26.3. Basis Methoden
    26.3.1. Aktuelles Datum
    26.3.2. Zend_Date durch Beispiele
    26.3.2.1. Ein Datum ausgeben
    26.3.2.2. Setzen eines Datums
    26.3.2.3. Addieren und Subtrahieren von Daten
    26.3.2.4. Vergleichen von Daten
    26.4. Zend_Date API Übersicht
    26.4.1. Zend_Date Optionen
    26.4.1.1. Auswahl der Art des Datumsformats
    26.4.1.2. Sommer-/Winterzeit und Datumsberechnungen
    26.4.1.3. Monatsberechnungen
    26.4.1.4. Lokalisierung und Normalisierung von Daten mit Zend_Cache schneller machen
    26.4.1.5. Syncronisierte Zeiten mit Zend_TimeSync erhalten
    26.4.2. Arbeiten mit Datumswerten
    26.4.3. Grundsätzliche Zend_Date Operationen für die meisten Teile von Daten
    26.4.3.1. Liste der Datumsabschnitte
    26.4.3.2. Liste der Datums-Operationen
    26.4.4. Vergleichen von Daten
    26.4.5. Daten und Teile von Daten abfragen
    26.4.6. Arbeiten mit Sekundenbruchteilen
    26.4.7. Sonnenaufgang / Sonnenuntergang
    26.5. Erstellen von Datumswerten
    26.5.1. Erstellen des aktuellen Datums
    26.5.2. Erstellen von Datumswerten von einer Datenbank
    26.5.3. Erstellung eines Datums von einem Array
    26.6. Konstanten für generelle Datums Funktionen
    26.6.1. Konstanten benutzen
    26.6.2. Liste aller Konstanten
    26.6.3. Selbst-Definierte AUSGABE Formate mit ISO
    26.6.4. Selbst-definierte AUSGABE Formate welche PHP's date() Formatdefinition verwenden
    26.7. Funktionierende Beispiele
    26.7.1. Prüfen von Daten
    26.7.2. Sonnenaufgang und Sonnenuntergang
    26.7.3. Zeitzonen

    26.1. Einführung

    Die Zend_Date Komponente bietet eine umfangreiche aber einfache API zur Manipulation von Datum und Zeit. Die Methoden verarbeiten eine große Auswahl von Datentypen in vielen Kombinationen und erweitern die vorhandenen PHP Datumsfunktionen um eine Vielzahl von Möglichkeiten. Die aktuellste Version der Dokumentation kann in unserer Online Dokumentation (regelmäßig mit SVN syncronisiert) gefunden werden.

    Auch wenn Einfachheit das höchste Ziel bleibt, ist die Arbeit beim Umgang mit lokalisierten Datums- und Zeitangaben unweigerlich mit einer gewissen Komplexität verbunden. Daten als auch Zeitangaben werden in verschiedenen Datums- und Zeitzonen oft unterschiedlich dargestellt. Beispielsweise stellen manche die Monatsangabe voran, während andere das Jahr an erste Stelle schreiben um ein Kalenderdatum darzustellen. Für weiterführende Informationen über die Handhabung von Lokalisierung und Normalisierung kann im Abschnitt Zend_Locale nachgelesen werden.

    Zend_Date unterstützt auch abgekürzte Monatsnamen in vielen Sprachen. Zend_Locale erleichert die Normalisierung von lokalisierten Monatsnamen und Wochentagen zu Zeitpunkten, die umgekehrt auch wieder lokalisiert für andere Regionen übersetzt werden können.

    26.1.1. Immer eine Standardzeitzone definieren

    Bevor beliebige datumsrelevante Funktionen in PHP oder dem Zend Framework verwendet werden können, sollten sichergestellt werden, dass die Standardzeitzone in der Anwendung korrekt definiert wurde. Das kann wahlweise mit dem Definieren einer TZ Umgebungsvariablen, der date.timezone Einstellung in der php.ini oder durch die Funktion date_default_timezone_set() durchgeführt werden. Durch das Setzen einer Standardzeitzone können in PHP können alle datums- und zeitabhängigen Funktionen für einen bestimmten Benutzer angepasst werden. Eine vollständige Auflistung der Zeitzoneneinstellungen kann in der CLDR Zeitzonen Liste ( Englisch ) gefunden werden.

    Example 26.1. Definieren einer Standardzeitzone

    // Zeitzone für die USA, Kalifornien
    date_default_timezone_set('America/Los_Angeles');
    // Zeitzone für Deutschland
    date_default_timezone_set('Europe/Berlin');

    Wenn eine Zend_Date Instanz erzeugt wird, wird die Zeitzone des aktuellen Benutzers automatisch als aktuelle Standardzeitzone übernommen. Deshalb wird die Einstellung der Zeitzone für jede Zeitumstellung (DST) berücksichtigt und erspart effektiv das explizite Setzen der Sommer-/Winterzeitumstellung (DST).

    Es gilt zu beachten, dass die Zeitzonen UTC und GMT keine Sommer-/Winterzeitumstellung enthalten. Das bedeutet, dass selbst wenn per Hand definiert wurde, dass Zend_Date die DST berücksichtigen soll, das automatisch für alle Instanzen von Zend_Date zurückgeschaltet wird, die auf UTC oder GMT eingestellt wurden.

    26.1.2. Warum soll Zend_Date verwendet werden ?

    Zend_Date erweitert die Möglichkeiten der PHP Datumsfunktionen um folgende Features:

    • Einfache API

      Zend_Date bietet eine sehr einfache API, welche die besten Datums- und Zeitfunktionen aus vier Programmiersprachen vereint. Beispielsweise ist es möglich, in nur einer Zeile zwei Zeiten miteinander zu vergleichen oder zu addieren.

    • Vollständig internationalisiert

      Alle vollen und abgekürzten Monatsnamen und Wochentage aus mehr als 130 Sprachen werden unterstützt. Die Methoden ermöglichen die Ein- und Ausgabe von Daten im Format des jeweiligen Gebietsschemas.

    • Unlimitierte Zeitpunkte

      Obwohl die PHP 5.2 Dokumentation erklärt: "Die gültige Spanne eines Zeitpunktes geht von Fr, 13. Dez 1901 20:45:54 GMT bis Di, 19. Jan 2038 03:14:07 GMT", ermöglicht Zend_Date mit Unterstützung der BCMath Erweiterung eine fast unbegrenzte Zeitspanne. Wenn BCMath nicht verfügbar ist, bietet Zend_Date eine Spanne innerhalb des float Datentyps des verwendeten Servers. "Die Größe von float ist Plattformabhängig, allerdings ist das Maximum von ~1.8e308 mit einer Genauigkeit von ca. 14 Dezimalstellen ein Standardwert. (das 64 bit IEEE Format)." [http://www.php.net/float]. Zusätzlich können inhärente Beschränkungen der Float-Datentypen sowie Rundungsfehler von Fließkommazahlen Berechnungsfehler verursachen. Um diese Probleme zu vermeiden, verwenden die I18n-Komponenten des Zend Frameworks die BCMath Extension, wenn verfügbar.

    • Unterstützung der ISO-8601 Datumsspezifikation

      Die ISO-8601 Datumsspezifikationen werden unterstützt. Sogar teilkonforme ISO-8601 Datumsspezifikationen werden erkannt. Diese Zeitformate sind vor allem bei der Arbeit mit Datenbanken sinnvoll. Selbst wenn zum Beispiel MsSQL und MySQL leicht unterschiedlich mit Datum und Zeit umgehen, werden beide von Zend_Date unterstützt, wenn die Zend_Date::ISO_8601 Format Konstante verwendet wird. Wenn Datumszeichen mit den PHP date() Formaten "Y/m/d" oder "Y-m-d H:i:s" übereinstimmen, sollte die in Zend_Date eingebaute Unterstützung für ISO-8601 formatierte Daten verwendet werden.

    • Sonnenauf- und Untergang errechnen

      Sonnenauf-und Untergang können für jeden beliebigen Ort und Tag anzeigen werden, so dass keine einzige Sekunde Tageslicht für das Lieblings-PHP-Projekt verpasst werden muß :)

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...