nun habe ich doch ein Problem mit dem Datum und time().
Ich möchst von dem heutigen Datum (z.B. 08.12.2006) ein anderes Datum (z.B. 15.09.1965) abziehen um zu erfahren das der Unterschied nicht kleiner ist als 15 Jahre (ca. 5475 Tage) ist. Die Schaltjahre sollen berücksichtigt werden. Ich habe zunächst mal nur die Jahreszahlen von einander abgezogen und auf kleiner 15 geprüft. Das geht auch so ganz gut. Aber ich möchte natürlich die Tage und Monate auch berücksichtigen.
Hat da jemand eine zündende Idee? Ich habe leider noch keine Erfahrung mit time() oder anderen Zeitformen.
Danke für Eure Hilfe
Gruß Jürgen
__________________
--------------------------------
Gruß Jürgen
Mach doch folgendes, wenn der Jahresunterschied >=15 ist Prima, wenn der Jahresunterschied 14 ist, dann schaust du nach dem Monat und Tag, ist der Monat größer=>gut, ist der Monat gleich, dann checkst du noch den Tag..
Damit kannst du mit 3-4 Abfragen feststellen ob zwischen a und b 15Jahre liegen, die Differenz in Tagen rauszubekommen ist mit php nicht so einfach (vor allem bei Daten vor 1970 unter Windows)
if (date("Y") > $_jahre){
$_ergebnis = "Der User ist <b>älter</b> als 15 Jahre!";
}elseif ((date("Y") >= $_jahre) and (date("n") > $_monate)){
$_ergebnis = "Der User ist <b>älter</b> als 15 Jahre!";
}elseif ((date("n") >= $_monate) and (date("Y") >= $_jahre) and (date("d") >= $_tage)){
$_ergebnis = "Der User ist <b>älter</b> als oder genau 15 Jahre!";
}else{
$_ergebnis = "<b style=\"color:#ff0000;\">Der User ist jünger als 15 Jahre!</b>";
}
echo $_ergebnis;
Danke für die Hilfe
__________________
--------------------------------
Gruß Jürgen
Was ist wenn das Jahr gleich ist? Dann muß man noch auf Monat und eventuell wenn der auch nicht Größer sondern Gleich ist auf Tage Größer Gleich prüfen!!
Das ist sauberer als bei mir. Das übernehme ich. Danke
PHP-Code:
list($tag,$mon,$jahr) = explode('.', $geb);
Viel Spaß
__________________
--------------------------------
Gruß Jürgen
Dieser Prüfung auf Tag und Monat kannst du hiermit ausweichen.
PHP-Code:
$ts = mktime(0,0,0,$mon, $tag, date("Y"));
Damit wird der Timestamp des Geburtstags auf das aktuelle Jahr bezogen erstellt. Mit diesem wird dann geprüft ob der Tag des Geburtstags vor, nach oder gleich dem aktuellem Tag ist.
PHP-Code:
if($ts > mktime()) $yd = date("Y") - $jahr - 1;
Liegt der Geburtstag in der Zukunft, wird von der Jahresberechnung ein Jahr abgezogen.
Bsp.
Geburtstag(Geburtstag bezogen auf aktuelles Jahr)
08.12.1991(08.12.2006) = 15 Jahre alt $ts < mktime()
09.12.1991(09.12.2006) = 15 Jahre alt $ts <= mktime()
10.12.1991(10.12.2006) = 14 Jahre alt $ts > mktime() aber 2006 - 1991 = 15, da das Datum (bezogen auf das aktuelle Jahr) in der Zukunft liegt wird 1 Jahr abgezogen.