Ergebnis 1 bis 3 von 3

Thema: Catalog-Einträge ab aktuellem Datum zurück bis zu z.B. 3 Monate automatisch offline

  1. #1
    Contao-Nutzer
    Registriert seit
    24.07.2009.
    Beiträge
    66

    Standard Catalog-Einträge ab aktuellem Datum zurück bis zu z.B. 3 Monate automatisch offline

    Ich lege ein Feldtyp "Datum" mit der Bezeichung "Schaltdatum" an und möchte, dass ab diesem Datum z.B. 3 Monate (90 Tage) zurück dieser Catalog-Eintrag automatisch offline gestellt wird.
    Wie mache ich das?

    Ich habe mir die Catalog-Anleitung "Filtern nach Datum" zwar angesehen, aber mir fehlt da leider das KnowHow in der Richtung was zu programmieren.
    Das Beispiel: meinedatumsvariable BETWEEN UNIX_TIMESTAMP('{{date::Y}}-01-01') AND UNIX_TIMESTAMP('{{date::Y}}-12-31') kann ich zwar als Laie verstehen, mehr aber leider (noch) nicht.
    "Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie passten auch heute noch." George Bernard Shaw

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das müsste so gehen, dass du für die Auflistung eine Bedingung angibst. Die Bedingung ist MySQL-Syntax.

    Dazu prüfst du irgendein Feld in der Tabelle mit deiner Bedingung. Wenn du ein Feld mit einem Unix-Timestamp hast, kannst du mit UNIX_TIMESTAMP() das aktuelle Datum diesem Feld gegenüberstellen. Der Unix-Timestamp sind die Sekunden seit '1970-01-01 00:00:00' UTC.

    Beispiel
    myDate > UNIX_TIMESTAMP() - 90 * 24 * 60 * 60
    bzw.
    myDate > UNIX_TIMESTAMP() - myOnlineDays * 24 * 60 * 60, wenn du die Onlinetage als Feld im Datensatz eingeben möchtest.

    Dabei würden Datensätze ausgegeben, bei denen das Datum (myDate) größer ist als Heute minus 90 Tage. Also alle älter als 90 Tage werden nicht ausgegeben. Für den Fall, dass du vielleicht gar kein Datum in den Datensatz eingeben möchtest, sondern nur eine Zeitspanne in Tagen.

    Datum vergleichen wäre dann noch einfacher.

    myOfflineDate > UNIX_TIMESTAMP()

    Solange das Datum noch größer ist als Heute - anzeigen

    Vielleicht kommst du damit ja weiter.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Da gibt es aber in MySQL bessere Datums Routinen anstatt das fix mit 30 Tage langen Monaten zu rechnen

    Die sind alle auch schoen in der Doku von MySQL hinterlegt.

    aber irgendwo hier hatten wir das doch schon mal, aber damals waren es glaub ich nur wochen die inkrementiert werden sollte... Mal SuFu oder aber direkt bei mysql lesen.

    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

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
  •