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

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Burek
    Contao-Nutzer
    • 24.07.2009
    • 66

    #1

    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
  • Andreas
    Contao-Urgestein
    • 19.06.2009
    • 7709

    #2
    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

    Kommentar

    • xtra
      Maintainer
      • 02.07.2009
      • 2007

      #3
      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.

      Kommentar

      Lädt...