Willkommen in der Webstatt Zum Webstatt Blog und Stories
phore phore 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?
milahu milahu 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)

nuit nuit 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 ;)

phore phore am 11.09.06 14:41

@milahu.
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..

@nuit. ich probiers mal aus..
/edit. hast du evtl. ein beispiel?

Neals 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.

fish fish am 11.09.06 15:01

http://sili.ch/artikel/3 -.-

phore phore am 11.09.06 15:05

@neals.
hm - scheint zu funktionieren. danke.

@fish.
ist ja fast dasselbe wie meins, wass soll da besser funktionieren...

Neals 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 ;)

nuit nuit am 11.09.06 15:12

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

phore phore am 11.09.06 15:12

jaja kein problem.

sili sili am 11.09.06 20:56

Quote
Original von nuit
arg...ja stimmt...dann hat man ja das 1970er problem....hey sili 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