| 

.NET C# Java Javascript Exception

1
Hallo,

ich habe für Joomla eine Komponetne erworben, welche einen XML Datensatz auswertet. Leider gibt es da ein Problem.

Im XML Datensatz gibt es folgenden Eintrag
<SpielVon>2012-09-16T16:00:00+02:00</SpielVon>


In der Komponente wird dieses mit
date('H:i', strtotime ($platz->SpielVon))

verarbeitet. Nur leider ist die Ausgabe 18:00, es soll aber um 16:00 sein. Ist die Angabe im XML Datensatz falsch oder wird diese falsch ausgewertet?

Danke
Stefan
06.08.2012
DTAG 170 1 8
2
Also ich sehe im Originaldatensatz am Ende ein +2 stehen, was Deinen 18 Uhr entspricht! Die wirst Du wohl berücksichtigen müssen. Ich kenne PHP nicht gut genug, aber schau mal nach date_default_timezone_set() und date_default_timezone_get().
JEwen 06.08.2012
1 Antwort
2
Aus der Dokumentation von strtotime:
Diese Funktion erwartet einen String mit einem Datum im Englischen Datumsformat und versucht, dieses Format in einen Unix-Timestamp (die Anzahl der Sekunden seit dem 01. Januar 1970 00:00:00 UTC) zu übersetzen. Die Angabe wird relativ zum im now-Parameter übergebenen Timestamp oder der aktuellen Zeit, sofern now nicht übergeben wurde, ausgewertet.

now + 2 entspricht damit 18 Uhr. Wenn du die aktuelle Zeitzone auf UTC setzt sollte die Uhrzeit passen (MEZ + 1 und Sommerzeit).
06.08.2012
puls200 3,8k 7
Danke! Aber ich muss ja bei mir also die falsche Zeitzone einstellen. Ist das Ausgangsformat dann nicht richtig angepasst?
DTAG 08.08.2012
1
Meiner Meinung nach ist der Bug in der Auswertung. Das Ausgangsformat ist nach ISO 8601 richtig, +02:00 bedeutet MESZ Sommerzeit relativ zur UTC. Das Skript welches das einliest müsste $platz->Spielvon relativ zur UTC befüllen, nicht relativ zur lokalen Zeit. Dadurch bekommst du noch einmal 2 Stunden obendrauf ;-)
puls200 08.08.2012

Stelle deine Php-Frage jetzt!