Willkommen in der Webstatt
User-1 am 11.09.06 14:24

hallo.

nachdem ich es jetzt erfolglos selber ein paar mal probiert habe und auch diverse andere scripte getestet habe frage ich mal hier.. hat jemand ein script was geburtstage ausrechnet aber den geburtsmonat + tag berücksichtigt?
leute die nach [FONT=courier new]date('n')[/FONT] geburtstag haben werden trotzdem "1 jahr zu alt" angezeigt..

also ein user hat zb. am 05. Dezember 1988 geburtstag - wird aber trotzdem schon als 18 berechnet.

hier mein versuch:

# Alter berechnen YYYY.MM.DD
function alter ($strDate) {
# Alter ausrechnen
$datePiece = explode('.', $strDate);
$alter = date('Y') - $datePiece[0];
if (date('n') < $datePiece[1] || (date('n') == $datePiece[1] && $datePiece[2] > date('j'))) {
$alter--;
}

return $alter;
}

netcup.de Warum gibt es hier Werbung?
User-2 am 11.09.06 14:33

Zeile 4 geht becha:
list($y, $m, $d) = explode('.', $strDate);
Und wieso nimmst in Zeile 6 nicht einfach `<=` statt `< || ==`?
Bügelt auch gleich deinen Fehler aus (fehlende Klammern)

User-3 am 11.09.06 14:37

wie man es machen könnte:
du rechnest das alter aus, also Jahr zu Jahr ;)

du brauchst 2 timestamps. der heutige TAg am anfang, also um 00:00
+ den timestamp von damals um 00:00

wenn der Timestamp von dem angegeben Datum kleiner ist dann ist er ein Jahr jünger als du errechnest hast, also -1

wenn es größer ist um 24*60*60 sekunden...dann passt dein alter.

wenn er größer ist, aber nicht um 24*60*60 sekunden, dann passt dein alter auch, aber er hat gerade geburtstag ;)

User-1 am 11.09.06 14:41

@xyz-145.
also so..?

# Funktion um aus dem Geburtsdatum das Alter zu bestimmen
function alter ($strDate) {
# Alter ausrechnen
list($year, $month, $day) = explode('.', $strDate);
$alter = date('Y') - $year;
if (date('n') <= 12 && 5 > date('j')) {
$alter--;
}
return $alter;
}


..funzt nämlich auch nicht. zeigt immer noch 18 an beim oben genannten beispiel..

@xyz-161. ich probiers mal aus..
/edit. hast du evtl. ein beispiel?

User-4 am 11.09.06 14:58

# Alter berechnen DD.MM.YYYY
function alter ($strDate) {
# Alter ausrechnen
$now = time();
$bday = strtotime($strDate);

$differenz = $now - $bday;
$alter = $differenz/60/*sec*//60/*min*//24/*std*//365/*tage*/;
return $alter;
}


So hätte ich es gemacht.

User-5 am 11.09.06 15:01

http://xyz-190.ch/artikel/3 -.-

User-1 am 11.09.06 15:05

@neals.
hm - scheint zu funktionieren. danke.

@xyz-70.
ist ja fast dasselbe wie meins, wass soll da besser funktionieren...

User-4 am 11.09.06 15:06

Musst natürlich bei meinem noch die Zahlen hinterm Komma wegmachen, das sollte ja aber nicht so schwer sein ;)

User-3 am 11.09.06 15:12

arg...ja stimmt...dann hat man ja das 1970er problem....hey xyz-190 ich ziehe meinen hut...daran hätt eich garnicht gedacht *fg*

User-1 am 11.09.06 15:12

jaja kein problem.

User-6 am 11.09.06 20:56

Quote
Original von xyz-161
arg...ja stimmt...dann hat man ja das 1970er problem....hey xyz-190 ich ziehe meinen hut...daran hätt eich garnicht gedacht *fg*


Hehe, danke :)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt