Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: Getrennte Attribute Datum / Uhrzeit > Zeitunterschied anhängen

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard Getrennte Attribute Datum / Uhrzeit > Zeitunterschied anhängen

    Hallo zusammen,
    ich möchte gerne Datum und Uhrzeit getrennt abspeichern.
    Attribute: startDate / endDate

    Wenn ich die Attribute im Template kombiniere erreiche ich das Fettgedruckte aber ich weiß nicht wie ich an den Ortszeitunterschied komme.

    2022-12-15T21:00:00+01:00
    2023-06-15T21:00:00+02:00


    PS: Wenn Datum und Zeit in einem Attribut abgespeichert wird ginge das ja recht leicht über
    PHP-Code:
    <?php echo date('c'$arrItem['raw']['startDateTime']); ?>
    Jemand einen Tipp wie ich bei getrennten Attributen an mein gewünschtes Format komme?

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Hallo zusammen,
    ich möchte gerne Datum und Uhrzeit getrennt abspeichern.
    warum?

    Ich hab nicht verstanden, was das Ziel der Übung ist und wie du was kombinierst...

    Hinweis: ab MM 2.2 kann man bei der Eingabemaske beim Attribut einstellen ob im Timestamp "alles" abgespeichert wird oder der Datums- oder Zeit-Teil auf Null gesetzt wird

  3. #3
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    warum?
    Um redaktionelle Fehler bei der Datum / Zeiteingabe zu vermeiden. So kann ich über eine Checkbox steuern ob eine Zeit angegeben werden soll.

    Mit kombiniert meinte ich:
    PHP-Code:
    <?php echo date("Y-m-d"$arrItem['raw']['startDate]); ?>T<?php echo date("H:i", $arrItem['raw']['startTime]); ?>:00+
    ergibt z.B.: 2022-12-15T21:00:00+

    jetzt fehlt nur noch die Angabe zur Zeitverschiebung...

    @zonky: Hast du bei deinen Veranstaltungs MM's Datum / Zeit in einem Attribut?

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    ein Beispiel was ich gefunden habe, da ist das getrennt https://easycaptures.com/fs/uploaded...4909831094.png

    und die Ausgaben sehen z.B. so aus https://easycaptures.com/fs/uploaded...4130668999.png

    soll so eine Ausgabe

    2022-12-15T21:00:00+01:00
    für die MicroData/Schema.org sein?

  5. #5
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    So in etwa hab ich das auch.
    Bildschirmfoto 2022-11-27 um 13.54.26.png

    Ja genau es geht um die Strukturierten Metadaten, die sich in der Konstellation schwierig gestaltet...

  6. #6
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Das Contao Core Eventmodul baut aus aus den 2 getrennten Eingabefeldern von Datum und Zeit einen Unix-Timestamp. Evtl. müsste man mal den Core durchschauen an welcher Stelle das passiert und nachbauen. Wenn es keine einfachere Lösung gibt... Oder es kommt irgendwann als Option in MM. Da die Auszeichnung mit strukturierten Daten heutzutage schon sehr wichtig ist...

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Das Contao Core Eventmodul baut aus aus den 2 getrennten Eingabefeldern von Datum und Zeit einen Unix-Timestamp.
    A: Evtl. müsste man mal den Core durchschauen an welcher Stelle das passiert und nachbauen.
    B: Wenn es keine einfachere Lösung gibt... Oder es kommt irgendwann als Option in MM. Da die Auszeichnung mit strukturierten Daten heutzutage schon sehr wichtig ist...
    zu A: das PrePersistModelEvent vom DCG wäre das Passende - kannst aber auch Contao save_callback vom Feld nehmen

    zu B: ich sehe das Problem nicht
    z.B.

    ein Tag hat 86.400 Sekunden = 5 Zeichen

    also sind vom TS 1669556964
    1669500000 der Tag
    56964 die Zeit

    Wenn Du wie oben beschrieben die Einstellung der Attribute von Tag und zeit entsprechend einstellst, werden die automatischen Ergänzungen von PHP entfernt und du hast in der DB 1669500000 für den Tag und 56964 als Zeit in der DB

    ... kannst Du auch einfach wieder zusammenziehen zu 1669500000 + 56964 = 1669556964

    Also ob Du die Zahl 1669556964 in einem oder zwei Zellen speicherst, ist gehupft wie gesprungen...

  8. #8
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Wenn Du wie oben beschrieben die Einstellung der Attribute von Tag und zeit entsprechend einstellst, werden die automatischen Ergänzungen von PHP entfernt und du hast in der DB 1669500000 für den Tag und 56964 als Zeit in der DB

    ... kannst Du auch einfach wieder zusammenziehen zu 1669500000 + 56964 = 1669556964

    Also ob Du die Zahl 1669556964 in einem oder zwei Zellen speicherst, ist gehupft wie gesprungen...
    Das ist schonmal ein sehr guter Hinweis.
    Jetzt habe ich nur noch das Problem, dass mir mit dem errechneten tstamp 1 Std. zu früh ausgegeben wird.
    Bsp.:
    startDate: 16.06.2023 > ts: 1686866400
    startTime: 19:30 > ts: 66600

    PHP-Code:
    <?= date('c'$arrItem['raw']['startDate'] + $arrItem['raw']['startTime']); ?>
    Ergibt: 2023-06-16T18:30:00+02:00

    Habe ich hier was übersehen?
    Geändert von marcohe (27.11.2022 um 15:16 Uhr)

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Bsp.:
    startDate: 16.06.2023
    startTime: 19:30
    wie ist Dein TS dazu?

  10. #10
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Habe ich hier ergänzt.

    PHP-Code:
    <?php echo date('H:i'$arrItem['raw']['startTime']);  ?>
    Ergibt: 19:30 > passt also

  11. #11
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    PHP-Code:
    <?= date('c'strtotime('+1 hours', ($arrItem['raw']['startDate'] + $arrItem['raw']['startTime']))); ?>
    Wäre korrekt: 2023-06-16T19:30:00+02:00

    Wäre eine Notlösung...

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    vielleicht ist es eleganter, mit DateTime zu arbeiten - da kann man eine Zeitzone angeben https://www.php.net/manual/en/class.datetimezone.php

  13. #13
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    vielleicht ist es eleganter, mit DateTime zu arbeiten - da kann man eine Zeitzone angeben https://www.php.net/manual/en/class.datetimezone.php
    Danke für den Hinweis. Schaue ich mir mal in Ruhe an. Aber im Prinzip funktioniert der Einzeiler
    PHP-Code:
    <?= date('c'strtotime('+1 hours', ($arrItem['raw']['startDate'] + $arrItem['raw']['startTime']))); ?>
    wunderbar bei Sommer-&Winterzeit.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •