Timestamp nach heutigen Datum, aber beliebiges Jahr, abfragen

MM2410

Grünschnabel
Hallo,

mich quält schon seit längerem ein Problem, ich finde dazu aber keine Lösung per Google oder hier im Forum.

Ich arbeite mit MySQL und habe eine Tabelle in der verschiedene Ereignisse mit einem UNIX-Timestamp gespeichert sind.

Nun möchte ich eine Ausgabe erzeugen, die mir alle Ereignisse mit aktuellem Datum zeigt, nur das Jahr soll keine Rolle spielen. Also "heute vor x Jahren"...

Eine Beispiel, wie die Ausgabe aussehen könnte.

23.11.1987 -> Ereignis 1
23.11.1979 -> Ereignis 2

...

Wie kann ich das in einer Abfrage in Verbindung mit PHP lösen?

Danke für eure Hilfe!
 
Ist ein bißchen Rechenaufwand und es gibt sicherlich verschiedene Möglichkeiten.
Ein Ansatz:

Sowohl für historischen als auch aktuellen Timestamp:
Timestamp modulo (Sekunden pro Jahr) ergibt Sekunden seit 1.1.
Dieser Wert ganzzahlig dividiert durch (Sekunden pro Tag) ergibt den Tag des Jahres.
Die beiden dann vergleichen.

Hm, ziemlich schnell hingetippt. Ausprobieren.

edit: Auweh, da gibs ja noch Schaltjahre... ich nehm den Vorschlag zurück :p
 
Zuletzt bearbeitet:
Du kannst mit MySQL-Funktionen arbeiten:
Code:
select
  from_unixtime(`tsFeld`) as `datum`
  year(now())-year(from_unixtime(`tsFeld`)) as `jahreVorher`
from tabelle
where dayofmonth(now())=dayofmonth(from_unixtime(`tsFeld`))
  and month(now())=month(from_unixtime(`tsFeld`))
Der Code hat möglicherweise ein paar kleinere Fehler, da ich ihn nicht getestet, sondern hier im Editor getippt habe.

Mehr bei den Datums- und Zeitfunktionen

Gruß hpvw
 
Mir ist grad was eingefallen.
Ich könnte mir ja alle Ereignisse der Tabelle (ca. 800) in ein normales Format umrechnen lassen. (zb. DD.MM.JJJJ) und das dann mit dem heutigen Datum vergleichen. (23.11.2005).

Bloß, ist das net zuviel Rechenaufwand für Inet?
 
MM2410 hat gesagt.:
Mir ist grad was eingefallen.
Ich könnte mir ja alle Ereignisse der Tabelle (ca. 800) in ein normales Format umrechnen lassen. (zb. DD.MM.JJJJ) und das dann mit dem heutigen Datum vergleichen. (23.11.2005).

Bloß, ist das net zuviel Rechenaufwand für Inet?
Das ist für Maschinenverarbeitung so ziemlich das "unnormalste" Format, dass ich mir vorstellen kann.

Gruß hpvw

PS: Was gefällt Dir an dem Query oben nicht? Ich habe es eben getestet und es funktioniert, zumindest, wenn ich Dein Problem richtig verstanden habe.
 
Jo, Danke an euch alle.
Es funktioniert perfekt.

Ich hatte das Post oben gerade geschrieben, als die Lösung gepostet wurde!
Deshlab habe ich das nich nicht gesehen.

Danke!
 
Zurück