Mit PHP pruefen, ob jemand schon 18 ist.
$tag=intval($_GET['tag']);
$monat=intval($_GET['monat']);
$jahr=intval($_GET['jahr']);
if ($jahr<1890)
{ $jahr+=1900; }
$geburi=mktime(0,0,0,$monat,$tag,$jahr);
$heutevor18=strtotime ("-18 years");
if (($geburi<$heutevor18) OR ($jahr<1970))
{ /* OK, aelter als 18 */ }
else
{ /* juenger als 18 */ }
Bezeichnung | Datum/Zeit (aus Timestamp) | Timestamp |
---|---|---|
Jetzt | 26-Apr-2024 02:43:09 | 1714092189 |
Geburtstag (15.4.1973) | 15-Apr-1973 00:00:00 | 103676400 |
Heute vor 18 Jahren | 26-Apr-2006 02:43:09 | 1146012189 |
Gemaess obigem Code. Beste Variante.
if ((103676400<1146012189) OR (1973<1970))
Alles in Ordnung, ueber 18!
Schwachstelle: Jahrgang < 1970 gibt negative Timestamps.
if ($geburi<$heutevor18)
if (103676400<1146012189)
Alles in Ordnung, ueber 18!
Schwachstellen: Schaltjahre (auch wer erst in ein paar Tagen 18 wird, kriegt das OK), Jahrgang < 1970
if ((time()-$geburi)>18*365*24*60*60)
if ((1714092189-103676400)>18*365*24*60*60)
Alles in Ordnung, ueber 18!
Siehe auch: PHP-Manual: Datums- und Zeit-Funktionen