Alterscheck
Fabienne
- php
Hallo zusammen,
kann mir jemand sagen, wie ich am besten einen "Alterscheck" (>=18 Jahre) durchführe?
Als Angabe stehen Geburtstag, Geburtsmonat und Geburtsjahr als getrennte Vars zur Verfügung.
Gibt es in PHP so schöne Datumsfunktionen wie in SQL?
Thanx
Hallo Fabienne,
kann mir jemand sagen, wie ich am besten einen "Alterscheck" (>=18 Jahre) durchführe?
Als Angabe stehen Geburtstag, Geburtsmonat und Geburtsjahr als getrennte Vars zur Verfügung.
Gibt es in PHP so schöne Datumsfunktionen wie in SQL?
$time_Geburtstag = mktime(0, 0, 0, date($Geburtsmonat), date($Geburtstag), date($Geburtsjahr));
$time_vor18jahren = mktime(0, 0, 0, date("m"), date("d"), date("Y")-18);
if ($time_Geburtstag <= $time_vor18jahren OR $Geburtsjahr <= 1970) {
echo "Bin älter als 18 Jahre ;-)";
}
Der Zeitvergleich funktioniert aber nur sicher für Geburtstage _nach_ dem "January 1 1970". Du mußt also noch zusätzlich prüfen, ob das Geburtsjahr nicht kleiner als als 1970 ist. Da dir das Geburtsjahr eh' schon vorliegt dürfte das aber kein Problem darstellen, daher das OR.
Grüsse
Frankie
Hallo Frankie,
$time_Geburtstag = mktime(0, 0, 0, date($Geburtsmonat), date($Geburtstag), date($Geburtsjahr));
$time_vor18jahren = mktime(0, 0, 0, date("m"), date("d"), date("Y")-18);
if ($time_Geburtstag <= $time_vor18jahren OR $Geburtsjahr <= 1970) {
echo "Bin älter als 18 Jahre ;-)";
}
Für was braucht man die date()-Funktion? Die mktime()-Timefunktion erwarten doch nur INT-Werte für m,d und Y, oder?
Danke!
Fab
Hallo Frankie,
$time_Geburtstag = mktime(0, 0, 0, date($Geburtsmonat), date($Geburtstag), date($Geburtsjahr));
Für was braucht man die date()-Funktion? Die mktime()-Timefunktion erwarten doch nur INT-Werte für m,d und Y, oder?
Nachtrag:
Meine natürlich die date-Funktion beim "Geburtstag"!
Grüße
Hallo Fabienne,
Für was braucht man die date()-Funktion? Die mktime()-Timefunktion erwarten doch nur INT-Werte für m,d und Y, oder?
Du hast recht, war ein Kopierfehler, date() braucht man in diesem Fall natürlich nur um auf das heutige Datum zurückgreifen zu können. Sorry.
$time_Geburtstag = mktime(0, 0, 0, date($Geburtsmonat), date($Geburtstag), date($Geburtsjahr));
muß heissen:
$time_Geburtstag = mktime(0, 0, 0, $Geburtsmonat, $Geburtstag, $Geburtsjahr);
$time_vor18jahren = mktime(0, 0, 0, date("m"), date("d"), date("Y")-18);
Hier braucht man date().
Grüsse
Frankie