Datum und Uhrzeit an andere Zeitzonen anpassen
Datum und Uhrzeit wird bei diesem Template mit dem Objekt lib.teaser.40 erzeugt. Dieses ist immer dann zu ändern, wenn es um die Ausgabe von Datum und Uhrzeit geht. Das folgende Beispiel erzeugt beides für zwei verschiedene Zeitzonen (Thailand und Deutschland). Fügen Sie den Code bitte in Ihr lokales TS-Setup ein:
- lib.teaser.40 >
- lib.teaser.40 = COA
- lib.teaser.40 {
- 10 = COA_INT
- 10 {
- wrap = <div class="timeEU">|</div>
- 5 = TEXT
- 5.value = Ihre Zeit:
- 10 = TEXT
- 10 {
- data = date:U
- strftime = %H:%M %d.%m.%Y
- }
- }
- 20 = COA_INT
- 20 {
- wrap = <div class="timeTH">|</div>
- 5 = TEXT
- 5.value = Thailand Zeit:
- 10 = TEXT
- 10 {
- data = date:U + 21600
- prioriCalc = 1
- strftime = %H:%M %d/%m/%Y
- }
- }
- }
- [month = 4,5,6,7,8,9,10]
- lib.teaser.40.20.10.data = date:U + 18000
- [global]
- Zunächst wird das gesamte Objekt lib.teaser.40 gelöscht (Zeile 1).
- Für die Darstellung werden zwei neue DIV-Container gebraucht (Zeile 6 und 17). Weiter unten finden Sie den erforderlichen CSS-Code.
- date:U gibt die UNIX-Zeit des Servers, auf dem TYPO3 läuft, zurück (Zeile 11). Das ist die Zeit in Sekunden, die seit dem 1.1.1970 0:00 Uhr bis jetzt vergangen ist.
- Die Anzeige von Datum und Uhrzeit wird für deutsche Anforderungen formatiert (Zeile12). Die Bedeutung der Buchstaben und Abkürzungen erfahren Sie bei php.net.
- Nun wird die Zeit für die zweite Zeitzone erzeugt (Zeile 22). Zur Unix-Zeit werden 21600 Sekunden addiert. Das sind genau sechs Stunden und das ist der Zeitunterschied zwischen Deutschland und Thailand.
- Mit prioriCalc = 1 (Zeile 23) wird die Voraussetzung geschaffen, dass zur Unix-Zeit etwas addiert werden kann.
- Die Anzeige von Datum und Uhrzeit wird für die Anforderungen der zweiten Zeitzone formatiert (Zeile 24).
- Die Sommerzeit in Deutschland beginnt am letzten Sonntag im März und endet jeweils am letzten Sonntag im Oktober. Der Zeitunterschied zu Thailand ist in dieser Zeit also nicht sechs, sondern nur fünf Stunden. Die Condition ab Zeile 28 sorgt dafür, dass in den Monaten der Sommerzeit nur 18000 Sekunden (fünf Stunden) addiert werden.
Ganz korrekt ist das jedoch nicht, weil für die letzten Tage im März und Oktober der Zeitunterschied nicht stimmt. Der Einfachheit halber habe ich die zusätzlich erforderlichen Condtions jedoch weggelassen. Bei typo3.net erfahren Sie mehr über alle möglichen Conditions.
Dieser CSS-Code (Einfügen in basemod.css) ist zusätzlich erforderlich, damit sich die Ausgabe in den teaser integrieren lässt:
- #teaser .aktDatum, #teaser .timeEU, #teaser .timeTH {float:right; margin:6px 20px 4px 0;}