CMS_INPUT_DATE & mode=time: Ausgabe entspricht nicht dem Eingabewert
Author: thorsten
Publication Date: 3/5/2013 19:56
Liebe Community,
ich scheitere gerade an einem vermutlich einfachen Problem.
Laut Doku wird bei CMS_INPUT_DATE und Verwendung von mode=time in allen Zeitzonen die gleiche Uhrzeit ausgegeben.
Bei mir ist aber Ausgabewert = Eingabewert + 1 Stunde
Was habe ich übersehen/wo liegt mein Fehler?
Hier die Details:
Version Server: 5.0.210.55494
Java-Version Server: 1.7.0_11
Doku: CMS_INPUT_DATE
Mode
… wird bei mode="date" und mode="time" in allen Zeitzonen das gleiche Datum bzw. die gleiche Uhrzeit ausgegeben (in der Eingabekomponente, Vorschau und Generierung).
Wird z.B. in der Zeitzone UTC+1 das Datum "01.01.1970" bzw. die Uhrzeit "00:00" eingegeben, wird in allen Zeitzonen "01.01.1970" bzw. "00:00" angezeigt.
Datenquelle
Eingabe:
Formular:
<CMS_INPUT_DATE name="tt_uhrzeit_start" allowEmpty="yes" allowInput="yes" hFill="no" mode="time" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Startzeit" description="Lege die Startzeit fest." format="HH:mm" length="10"/>
</LANGINFOS>
</CMS_INPUT_DATE>
Mapping:

Inhalt in DB:
uhrzeit_start - LONG bzw. bigint(20): 72000000
Ist-Ausgabe:
Sa, 23. Februar 2013 - 21:00 MEZ
Erwartete Ausgabe anhand Doku (Eingabe = Ausgabe):
Sa, 23. Februar 2013 - 20:00 MEZ
Register HTML:
<CMS_HEADER>
<CMS_FUNCTION name="contentSelect" resultname="fr_st_termine">
<CMS_PARAM name="schema" value="db" />
<QUERY entityType="termine">
<ORDERCRITERIA attribute="datum_start" descending="0" />
<ORDERCRITERIA attribute="uhrzeit_start" descending="0" />
</QUERY>
</CMS_FUNCTION>
</CMS_HEADER>
<ul>
$CMS_IF(!fr_st_termine.isEmpty)$
$CMS_FOR(_termine, fr_st_termine)$
<li>
$CMS_VALUE(_termine.datum_start.toDate().format("EE, dd. MMMM yyyy"))$ - $CMS_VALUE(_termine.uhrzeit_start.toDate().format("HH:mm z"))$</div>
</li>
$CMS_END_FOR$
$CMS_END_IF$
</ul>
Danke & Gruß,
Thorsten
Tags: cms_input_date
-
Author: Peter_Jodeleit - 3/6/2013 7:43
Eine Erläuterung zu der Antwort von Stefan: In der Datenbank werden Zeitstempel zur Basis UTC gespeichert. Wenn du das selber in ein Datums-Objekt umwandelst, musst du auch die Anpassung "lokale Zeitzone" zu "UTC" selber bei der Ausgabe berücksichtigen.
Einfacher ist das wahrscheinlich, wenn du die gespeicherte Uhrzeit als "Millisekunden seit Mitternacht" interpretierst.
Allerdings bleibt das Problem (das Stefan im PS erwähnt), das du den gleichen Effekt bei dem Feld "datum_start" hast.
0
Please sign in to leave a comment.
Comments
1 comment