Alter anhand des Geburtsdatums :)

KD3

Erfahrenes Mitglied
hi leute...

Kenne mich eigentlich mit PHP aus, nur ich habe gerade ein kleines problem.. ich möchte gerne es so haben dass wenn z.B einer sein geburtstag angegeben hat bzw. es überhaupt vorhanden ist, das script sein alter automatisch berechnet. Ich würde mich freuen wenn mir geholfen werden könnte... danke im voraus :)

ginge es ungefähr so? :

PHP:
<?php 

//............................ Die db verbindungen und so.... 

$row = mysql_fetch_assoc($q);

$gsesc = htmlspecialchars($row['geburtsdatum']);


$re  = time() - strtotime("$gsesc");

date("D.m.Y", $re);

?>

MfG
KD3
 
Was bekommst du denn bei der Division von zwei Unix-Zeitstempeln? Und nach welchen Vorgaben wird daraus ein neues Datum gebildet?
 
Probiert es mal mit dieser Funktion:
PHP:
function calcAge ($tag, $monat, $jahr)	{

	$jetzt = mktime(0,0,0,date("m"), date("d"), date("Y"));
	$geb = mktime(0,0,0,$monat, $tag, $jahr);
	$alter = intval(($jetzt - $geb) / (3600 * 24 * 365));

	return $alter;

}
 
Das Skript von tobee arbeitet leider nicht ganz so genau, wie man es gerne hätte:

Beispiel:
Geboren 29.04.1984 ergibt 22. Obwohl er heute 23 geworden wäre. Das gleiche übrigens für den 30.04.84.

Ich würde dieses hier bevorzugen:

PHP:
<?php
//
// Alter anhand eines Geburtsdatums errechnen
//
function GetAge($bday) {
  // Wert vorhanden?
  if (empty($bday)) {
    return false;
  }
  // Werte auftrennen
  list($d, $m, $y) = explode('.', $bday);
  // Datum auf Gültigkeit prüfen
  if (!checkdate($m, $d, $y)) {
     return false;
  }
  // Alter anhand der Jahre berechnen
  $age = date('Y') - $y;
  // Und anhand des genauen Tags / Monats korrigieren
  if (mktime(0, 0, 0, $m, $d, date('Y')) > time()) {
    $age--;
  }
  // Alter zurückgeben
  return ($age < 0 ? false : $age);
}
//
// Beispielaufruf
//
$geburtstag = '30.04.1984';
$alter = GetAge($geburtstag);
echo 'Alter: ' . ($alter === false ? 'Ungültiges Datum' : $alter);
?>
 
Das Skript von tobee arbeitet leider nicht ganz so genau, wie man es gerne hätte:

Beispiel:
Geboren 29.04.1984 ergibt 22. Obwohl er heute 23 geworden wäre. Das gleiche übrigens für den 30.04.84.

Ich würde dieses hier bevorzugen:

PHP:
<?php
//
// Alter anhand eines Geburtsdatums errechnen
//
function GetAge($bday) {
  // Wert vorhanden?
  if (empty($bday)) {
    return false;
  }
  // Werte auftrennen
  list($d, $m, $y) = explode('.', $bday);
  // Datum auf Gültigkeit prüfen
  if (!checkdate($m, $d, $y)) {
     return false;
  }
  // Alter anhand der Jahre berechnen
  $age = date('Y') - $y;
  // Und anhand des genauen Tags / Monats korrigieren
  if (mktime(0, 0, 0, $m, $d, date('Y')) > time()) {
    $age--;
  }
  // Alter zurückgeben
  return ($age < 0 ? false : $age);
}
//
// Beispielaufruf
//
$geburtstag = '30.04.1984';
$alter = GetAge($geburtstag);
echo 'Alter: ' . ($alter === false ? 'Ungültiges Datum' : $alter);
?>

Danke sehr Flex Jacobi :)
 
Zurück