Datum berechnen Rückwärts

J

joky_joky

Hallo kann mir jemand sagen wie ich das Geburtsjahr rückwärts berechne
und zwar müsste ich ein Alter wenn ich durch eine Datenbank suche z.B.
zischen 20 und 30 Jahre müste mir die Datenbank alle herauswerfen die zwischen 20 und 30 Jahre alt sind ab dem heutigen Datum natürlich.

wie kann ich das bewekstelligen das er mir dann die aus der Datenbank sucht.
Das datum in der Datenbank ist so eingetragen 01.01.1980 z.B. weis jemand wie ich da ansetzten soll? Hab mir gedacht ich wandel das zuerst in die unix timestamp um bin mir aber nicht sicher ob das der beste weg ist und wie ich diese dann bewerkstelligen kann.

MfG Joky_Joky
 
Hi!

Versuch's doch mal so:

$heute = date("d F Y");

$datum1 = strtotime("$heute -20 years");
$datum2 = strtotime("$heute -30 years");

$datumneu1 = date("d.m.Y", $datum1);
$datumneu2 = date("d.m.Y", $datum2);

Ergebnis:

datumneu1: 24.09.1984
datumneu2: 24.09.1974

Und dann könntest Du in der DB alle Leute suchen, wo das Geburtsdatum <= datumneu1 und >= datum2 ist.

redlama
 
Hm aber ist es dann nicht so dass der Eintrag in der Datenbank wo das Datum
z.B. 03.03.1978 ist nicht erkannt wird und somit nicht ausgegeben da ja die zahl
03031978 doch kleiner ist als die zahl 24091984 und auch keiner ist als die zahl
24091974?
 
Keine Ahnung, aber so hättest Du immerhin das Datum von heute vor 20 und von heute vor 30 Jahren im gleichen Format wie das in der DB.

Ob das mit der Abfrage der DB dann noch hinhaut weiß ich nicht.
Das wäre vielleicht ein Frage an das DB Forum.

Vielleicht solltest Du auch einfach das Datum in einem anderen Format in die DB speichern!?

redlama
 
Versuch mal folgendes Konstrukt für deine Abfrage:
Code:
SELECT
        `geburtstag`,
        (YEAR(CURRENT_DATE)-YEAR(`geburtstag`)) - (RIGHT(CURRENT_DATE,5)<RIGHT(`geburtstag`,5)) AS `alter`
  WHERE
        `alter` BETWEEN 20 AND 30
 
Zurück