Ergebnis 1 bis 21 von 21

Thema: Verständnisfrage: Wert von/bis für zwei Datums-Attribute

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard Verständnisfrage: Wert von/bis für zwei Datums-Attribute

    Hallo zusammen,
    ich habe einen Datumsfilter Wert von/bis für zwei Datums-Attribute mit Einstellungen siehe Screenshot.

    Wenn von 19.09. - 19.09. auswähle bekomme ich gar keine Ergebnisse > müsste eine Veranstaltung angezeigt werden
    Wenn ich von 20.09. - 20.09. auswähle bekomme ich ein Ergebnis > müssten zwei Veranstaltungen angezeigt werden

    Ich kann das Verhalten null nachvollziehen
    Woran könnte das liegen?

    Vielen Dank!


    Bildschirmfoto 2025-09-15 um 16.21.38.png
    Geändert von marcohe (15.09.2025 um 18:25 Uhr)

  2. #2
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.495
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ein Datumsfeld setzt meist im Hintergrund eine Uhrzeit. Wenn es nicht explizit 00:00:00 Uhr ist, dann ist es meist die Uhrzeit zum Zeitpunkt der Auswahl.

    Ich gehe bei MM davon aus, dass ersteres zutrifft. Demnach musst die 19. - 20. auswählen, um alles am 19. zu erwischen.

  3. #3
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    @marcohe: check mal was Cliff geschrieben hat in Deiner DB...

    In den Einstellungen des Attributs "Datum" der Eingabemaske kannst Du einstellen, ob beim Timestemp nur die "Ziffern für die Zeit" oder nur "Ziffern für Datum" gespeichert werden soll - bei letzterem werden die letzten Ziffern auf 0 gesetzt was dann das Datum für 00:00h bedeutet.

    Bei der Filterregel "Range" bitte auch die Auswahlmöglichkeiten der Filterungstypen beachten - siehe https://github.com/MetaModels/filter_range/issues/8 bzw. den Helper beim [?]

    Dein "S3" bedeutet, dass der erste Wert eine Überschneidung mit dem Bereich der zwei Werte aus der DB haben muss.

  4. #4
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Lächelndes Gesicht

    Zitat Zitat von zonky Beitrag anzeigen
    @marcohe: check mal was Cliff geschrieben hat in Deiner DB...

    In den Einstellungen des Attributs "Datum" der Eingabemaske kannst Du einstellen, ob beim Timestemp nur die "Ziffern für die Zeit" oder nur "Ziffern für Datum" gespeichert werden soll - bei letzterem werden die letzten Ziffern auf 0 gesetzt was dann das Datum für 00:00h bedeutet.

    Bei der Filterregel "Range" bitte auch die Auswahlmöglichkeiten der Filterungstypen beachten - siehe https://github.com/MetaModels/filter_range/issues/8 bzw. den Helper beim [?]

    Dein "S3" bedeutet, dass der erste Wert eine Überschneidung mit dem Bereich der zwei Werte aus der DB haben muss.
    Hmm ok. Ich speichere Datum und Zeit im selben tstamp.
    Der für 19.09. sieht in db so aus 1754593132 müsste eigentlich passen

  5. #5
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Hmm ok. Ich speichere Datum und Zeit im selben tstamp.
    Der für 19.09. sieht in db so aus 1754593132 müsste eigentlich passen
    das ist nur die halbe Wahrheit - Dein TS bedeutet 2025-08-07 19:58:52

    Verglichen wird der komplette TS und nicht nur die Ziffern für das Datum (bis 0h) => daher die Einstellung in der Eingabemaske zum "Bereinigen"

  6. #6
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    das ist nur die halbe Wahrheit - Dein TS bedeutet 2025-08-07 19:58:52

    Verglichen wird der komplette TS und nicht nur die Ziffern für das Datum (bis 0h) => daher die Einstellung in der Eingabemaske zum "Bereinigen"
    Bei Handhabung von Datum und Uhrzeit ist nichts ausgewählt, da ich beides in dem Eingabefeld erfassen möchte.

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

    Standard

    wenn Du jetzt bei dem Filter 07.08.2025 eingibst wird die aktuelle Zeit automatisch mit angefügt (09:58) => beide Zeitstempel (Eingabe vs. DB) werden verglichen... somit macht es einen Unterschied, um welche Uhrzeit Du den Datensatz gespeichert hast und wann Du im FE die Filterung anwirfst

    Zitat Zitat von marcohe Beitrag anzeigen
    Bei Handhabung von Datum und Uhrzeit ist nichts ausgewählt, da ich beides in dem Eingabefeld erfassen möchte.
    dann musst Du ggf. eben auch die Zeit mit beim Filtern erfassen

  8. #8
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    wenn Du jetzt bei dem Filter 07.08.2025 eingibst wird die aktuelle Zeit automatisch mit angefügt (09:58) => beide Zeitstempel (Eingabe vs. DB) werden verglichen... somit macht es einen Unterschied, um welche Uhrzeit Du den Datensatz gespeichert hast und wann Du im FE die Filterung anwirfst



    dann musst Du ggf. eben auch die Zeit mit beim Filtern erfassen
    Dann macht es auch wieder Sinn das am 20.09. nur 1 der beiden Veranstaltungen gefunden wird
    Test https://www.freiburg-info.de/veranstaltungssuche

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

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Dann macht es auch wieder Sinn das am 20.09. nur 1 der beiden Veranstaltungen gefunden wird
    Test https://www.freiburg-info.de/veranstaltungssuche
    korrekt: das wird jeden Tag um 19:58:53 ein anderes Ergebnis liefern als 19:58:52

    "zwei Sachen in einem Feld" speichern bringt oft Probleme mit sich und sollte man vermeiden

  10. #10
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    korrekt: das wird jeden Tag um 19:58:53 ein anderes Ergebnis liefern als 19:58:52

    "zwei Sachen in einem Feld" speichern bringt oft Probleme mit sich und sollte man vermeiden
    das ist jetzt aber doof. Mal überlegen ob ich auf getrennte Datum und Uhrzeitfelder ändere. Der Aufwand ist nicht ohne… danke erstmal

  11. #11
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    ggf. so:

    * neue Spalte/Attrribut für Zeit anlegen
    * alle Daten aus Datum in Zeit kopieren
    * mit Substring jeweils die Zahlen trennen und mit Nullen auffüllen

  12. #12
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Also ich habe nochmal getestet. Den Filter habe ich umgestellt aut ein Datumsattribut (Auswahl auf Attribut > Startdatum). Damit werden alle Startdatum korrekt gefiltert.
    Der Filter "für zwei Datumsattribute" wäre aber trotzdem interessant wenn Startdatum ungleich Enddatum.
    Kann hier auch ein Fehler im Filter "Wert von/bis für zwei Datumsattribute vorliegen?
    Vllt. muss ich Datum und Uhrzeit ja gar nicht getrennt in der DB ablegen

  13. #13
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Vllt. muss ich Datum und Uhrzeit ja gar nicht getrennt in der DB ablegen
    bei einem Vergleich der Timestamps wirst Du immer das Problem haben, wenn bei einer Eingabe eines Datums PHP automatisch die aktuelle Zeit mit anklebt

    Ob die Filterregel mit ein oder zwei Attributen das richtige ist, kann ich Dir nicht sagen - was willst Du den Filtern?

    Der Range-Filter (zwei Attribute) wird eher seltener eingesetzt - spannend wäre z. B. bei Reisen mit Start- und Enddatum und Filtereingabe von z. B. "will verreisen zwischen 03.09. und 15.10. ..."

    Start- und Enddatum einer Reise muss innerhalb von 03.09. und 15.10. sein ("Regel S5")

  14. #14
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Es sollen Veranstaltungen gefiltert werden.
    Der Filter „Von/bis für 2 Datumsfelder“ wäre eben interessant wenn eine Versnstaltung im Attribut Startdatum den 20.09. und Enddatum den 22.09. hat und diese Veranstaltung auch gefunden werden soll wenn man nach dem 21.09. filtert.

  15. #15
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Es sollen Veranstaltungen gefiltert werden.
    Der Filter „Von/bis für 2 Datumsfelder“ wäre eben interessant wenn eine Veranstaltung im Attribut Startdatum den 20.09. und Enddatum den 22.09. hat und diese Veranstaltung auch gefunden werden soll wenn man nach dem 21.09. filtert.
    Mit "S3" https://github.com/MetaModels/filter_range/issues/8 sollte man da was finden - man kann das Filterwidget auch so einstellen, dass man nur ein Datum im FE eingeben muss.

    Die größte "Trefferquote" hat "S4" - da muss mindestens eins von den eingegeben Suchdatum den Bereich der DB schneiden.

  16. #16
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Nochmal eine Frage dazu.
    Wenn ich den Filter "Wert von bis für 2 Datums-Attribute verwende" / Filtertyp: S4
    Url: de/suche/datum/16.05.2026,16.05.2026

    Müsste die Veranstaltung mit den timestamps
    startDate: 1778938200
    endDate: 1778945400

    gefunden werden oder wird hier nicht von 16.05.2026 00:00 Uhr - 16.05.2026 24:00 Uhr gesucht

  17. #17
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    nein, das macht der Filter nicht - Du kannst in den Attributseinstellungen bei der Eingabemaske angeben, dass die Urzeit in dem Timestamp auf "Null" gesetzt wird - bei vorhandenen Daten kannst Du das per SQL umwandeln

  18. #18
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    nein, das macht der Filter nicht - Du kannst in den Attributseinstellungen bei der Eingabemaske angeben, dass die Urzeit in dem Timestamp auf "Null" gesetzt wird - bei vorhandenen Daten kannst Du das per SQL umwandeln
    Ich bin schon alle erdenklichen Möglichkeiten durchgegangen inkl. datum und uhrzeit in getrennten attributen Wenn der Filter so suchen würde wäre alles viel einfacher 16.05.2026 00:00 Uhr - 16.05.2026 24:00 Uhr.
    Was spricht denn dagegen?

  19. #19
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    dazu sollten die Werte in MySQL-Datumswerten eingespeichert werden und nicht als Unix-Timestamp (wie bei Contao üblich)

    für ein schnelles SQL-Query gibt es m. E. keine elegante Suche nur nach den ersten Ziffern der Zahl

  20. #20
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    576

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    dazu sollten die Werte in MySQL-Datumswerten eingespeichert werden und nicht als Unix-Timestamp (wie bei Contao üblich)

    für ein schnelles SQL-Query gibt es m. E. keine elegante Suche nur nach den ersten Ziffern der Zahl
    Soweit verstanden

    Events:
    1. 15.05.2026 15:00 - 15.05.2026 18:30
    2. 13.05.2026 10:00 - 20.05.2026 18:00


    Filter mit S4
    datum/15.05.2026,16.05.2026

    müsste also, vorrausgesetzt ich finde die richtige Einstellung, beide Events finden?

  21. #21
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.552
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Soweit verstanden

    Events:
    1. 15.05.2026 15:00 - 15.05.2026 18:30
    2. 13.05.2026 10:00 - 20.05.2026 18:00


    Filter mit S4
    datum/15.05.2026,16.05.2026

    müsste also, vorrausgesetzt ich finde die richtige Einstellung, beide Events finden?

    ich sehe da gute Chancen ... ggf. im Debugmodus mal die ausgeführten Queries ansehen

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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