• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Altersrechner ??!!

Status
Für weitere Antworten geschlossen.

ColdZero

Neues Mitglied
Hallo Leute Ihr kennt doch bestimmt von z.B. (http://whatisfear.com/de/) die abfrage des Geburtsdatums.
Ich wollte mal ausprobieren ob sowas auch mit php geht:

Leider stimmen die gemachten berechnungen manchmal nicht!
Findet jemand den/die Fehler

Der Rechner:
Code:
<?PHP
$datum_d = date("d", time());
$datum_m = date("m", time());
$datum_y = date("Y", time());
$day = $_GET['day'];
$month = $_GET['month'];
$year = $_GET['year'];

echo "Tag:    " . $day . "
";
echo "Monat:  " . $month . "
";
echo "Jahr:   " . $year . "
" . "
";
echo "Tag heute:" . $datum_d . "
";
echo "Monat heute:" . $datum_m . "
";
echo "Jahr heute:" . $datum_y . "
" . "
";

if ($datum_d >= $day) {
$tag_a = $datum_d - $day;
} else {
$tag_a = $day - datum_d;
}

if ($datum_m >= $month) {
$monat_a = $datum_m - $month;
} else {
$monat_a = $month - datum_m;
}

if ($datum_y >= $year) {
$year_a = $datum_y - $year;
} else {
$year_a = $year - datum_y;
}

$alter = $year_a . "Jahre-" . $monat_a . "Monat/e-" . $tag_a . "Tag/e" . "
" . "
";

echo "Sie sind alt:
";
echo $alter; 

if ($year_a >= "16"){
echo "Sie sind 16 und können die Seite betreten!";
} else {
echo "Sie sind leider noch nicht 16";
}

?>

Das Eingabe Formular:

Code:
<form action="sorry.php" method="GET" target="_self">
<input type="Text" name="day" value="TT" size="2" maxlength="2">-<input type="Text" name="month" value="MM" size="2" maxlength="2">-<input type="Text" name="year" value="JJJJ" size="4" maxlength="4">

<input type="Submit" name="gd" value="Seite betreten">
</form>
 
Werbung:
$tag_a = $day - datum_d; <-- hier hast du immer das dollar vergessen passiert auch in den anderen abfragen wundert mich das er e´keinen fehler ausgibt...

($year_a >= "16") <-- kein fehler aber überflüssig warum solltest du eine größergleich anfrage aus einen string machen? machs doch gleich auf eine zahl...
 
Stimmt...

Ups, naja kann mal passieren sollte aber net.

Ändert leider nchts an der Situation,
da das Problem nicht direkt in dem PHP Script liegt sondern in der Rechnung die ausgefürht wird.

28.03.1959 //Das sind die eingegebenen Daten
17.10.2005 //Das ist das aktuelle Datum
=======

>>>>> // Hier wird die Rechnung durch die IF abfragen geändert.

28.10.2005 //Die neu Rechenformel
17.03.1959 //Die neu Rechenformel
=======
11.07.46 // Das Ergebniss

46 Jahre 07 Monate 11 Tage //Die Ausgabe

Aber in wirklichkeit müsste da rauskommen:
46 Jahre 06 Monate 19 Tage


Das ist übrigens net mein Geburtsdatum
ich bin zum Glück noch nicht 46 :wink:
 
Werbung:
das liegt daran das du wenn der monat brechnet wird den aktuellen tag nicht mit einbeziehst.

wenn act_tag >= geburtstag dann monat ok
wenn act_tag < geburtstag dann monat--

oder so ähnlich verstehst du?
 
Danke...
Hab jetzt während der Zeit in der ich mit diser Alterskontrolle nicht weitergekommen nen php Rechner geschrieben.
Und wollte fragen ob einer von euch weis wie ich das mit Wurzel ziehen machen kann!

Also wie man die Wurzel zieht weis ich hab aber keine idee wie ich das in php umsetzen soll!? :( :?:
 
Werbung:
am einfachsten machst du:
[php:1:ae85f2f9d1]<?php
$wurzel=3;
$zahl=27;
$resulat=$zahl^(1/$wurzel);
?>[/php:1:ae85f2f9d1]
@ Prophet:
es braucht (), da er sonst hoch 1 rechnet...
 
das ^-Zeichen gibt es in phph nicht für diese funktion es steht für das logische xor...

dasher muss er die pow oder so ähnlich funktion nutzen: pow($zahl, 1/$wurzel);
 
Werbung:
ist in fast allen programmiersprachen außer basic so das ^ für xor nicht für potenz rechnung verwendet wird... unter c++ gibt es dafür die funktion pow() und unter js Math.pow() ich weiß nur nicht wie es in php ist aber wofür gibt es selfphp....
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben