Zeitzonenunterstützung mit Zend_Date und MySQL

Mittag in San Francisco, Abend in London
Kommentare

Normal
0

21

false
false
false

DE
X-NONE
X-NONE

<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden=“true“ DefQFormat=“false“ DefPriority=“99″
LatentStyleCount=“267″>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Normal“>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“heading 1″>

<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Title“>

<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Subtitle“>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Strong“>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Emphasis“>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Table Grid“>

<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“No Spacing“>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading“>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List“>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid“>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List“>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading“>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List“>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid“>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 1″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 1″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 1″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 1″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 1″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 1″>

<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“List Paragraph“>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Quote“>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Intense Quote“>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 1″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 1″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 1″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 1″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 1″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 1″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 1″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 1″>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 2″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 2″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 2″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 2″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 2″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 2″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 2″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 2″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 2″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 2″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 2″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 2″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 2″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 2″>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 3″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 3″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 3″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 3″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 3″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 3″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 3″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 3″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 3″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 3″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 3″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 3″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 3″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 3″>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 4″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 4″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 4″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 4″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 4″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 4″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 4″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 4″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 4″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 4″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 4″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 4″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 4″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 4″>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 5″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 5″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 5″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 5″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 5″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 5″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 5″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 5″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 5″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 5″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 5″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 5″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 5″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 5″>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Shading Accent 6″>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light List Accent 6″>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Light Grid Accent 6″>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 1 Accent 6″>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Shading 2 Accent 6″>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 1 Accent 6″>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium List 2 Accent 6″>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 1 Accent 6″>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 2 Accent 6″>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Medium Grid 3 Accent 6″>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Dark List Accent 6″>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Shading Accent 6″>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful List Accent 6″>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed=“false“ Name=“Colorful Grid Accent 6″>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Subtle Emphasis“>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Intense Emphasis“>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Subtle Reference“>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Intense Reference“>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed=“false“ QFormat=“true“ Name=“Book Title“>


/* Style Definitions */
table.MsoNormalTable
{mso-style-name:“Normale Tabelle“;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:““;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:“Times New Roman“,“serif“;}

Bei wie vielen Projekten haben wir bereits Best Practices im Bereich I18N angewendet? Übersetzungen sind leicht, Zahlenformate ebenfalls. Bei Text-Encoding und Zeitzonen wird es schon etwas kniffliger. Gerade bei Letzterem lohnt sich allerdings ein genaueres Hinschauen: Applikationsdaten, die über Zeitangaben verfügen, können relativ leicht flexibel gehalten werden, was für den internationalen Einsatz der Software extrem wichtig ist. Wie Zeitzonenunterstützung realisiert werden kann, zeigt dieser Artikel.

Normal
0

21

false
false
false

DE
X-NONE
X-NONE

Weshalb sollte man überhaupt eine Software so schreiben, dass sie verschiedene Zeitzonen unterstützt, wenn Entitäten über Datumsinformationen verfügen, die doch sowieso fix in die Datenbank geschrieben werden? Stellen wir uns vor, wir sind ein in London ansässiger Freelancer, der PHP-Entwicklung anbietet. Einer unserer Kunden ist dieses große Maschinenbauunternehmen, für das wir vor Kurzem eine Dokumentenverwaltung geschrieben haben, die intern von der Finanzabteilung eingesetzt wird. Dieses Unternehmen ist im Begriff zu expandieren, und wir feiern bis zur bitteren Sperrstunde den Verkauf weiterer Arbeitsplatzlizenzen mit ein paar Freunden in einer Kneipe. Die Lizenzen sind für das neue Büro in San Francisco vorgesehen, wo das Unternehmen eine neue Außendienststelle gründet. Michael, der vorherige Finanzabteilungschef und einer der Hauptanwender unseres Dokumentenverwaltungstools, wird in den USA das neue Büro beziehen. An einem Nachmittag, zwischen halbvollen Umzugskisten und bei trübem London-Wetter, führt er Tim, seinen Nachfolger, in die Bedienung der Software ein.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -