Eagle3386
Mitglied
ManicMarble hat gesagt.:Also wie gesagt, ich habe das nicht wirklich zu Ende gedacht, war nur so ein Ansatz.
Die komischen Zeitangaben im Ergebnis kommen daher, dass mktime() eigentlich einen Zeitpunk (Timestamp) zurückliefert und eben keine Zeitspanne (Timeslice). Sprich: Das Ergebnis ist eigentlich ein Datum mit Uhrzeit - in Deinem Beispiel (Ergebnis "18 Jahre, 12 Monate, 29 Tage, 0 Stunden, 13 Minuten, 13 Sekunden") ist das der 29.12. des Jahres 18 (n.Chr.), 00:13:13 Uhr.
Das mit dem Jahr kann man so also nicht berechnen, da ja 18 n.Chr. deutlich vor dem 1.1.1970 liegt .
Deshalb habe ich das Jahr außen vor gelassen und berechne das später extra.
Da bei der mktime()-Berechnung (also $alter) theoretisch auch das Vorjahr rauskommen kann (3.3.2005 minus 3 Monate = 3.12.2004) muss in diesen Fällen diese Differenz noch bei der Jahres-Berechnung berücksichtigt werden. Deshalb
date('Y') - $geburtsjahr - (date('Y') - date('Y', $alter))
enspricht im o.g. Beispiel
2005 - 1986 - (2005 - 2004) = 2005 - 1986 - 1 = 18
Wenn Du den Ansatz mal zu Ende denken willst, muss Dir klar sein, wie mktime() arbeitet. Bei dem Alter Deiner Mutter sähe das in Etwa so aus:
$alter = mktime(13 - 0, 44 - 0, 20 - 0, 4 - 7, 1 - 20, 2005, -1);
entspricht
$alter = mktime(13, 44, 20, -3, -19, 2005, -1);
mktime() ist angeblich so schlau, aus den negativen Zahlen wieder ein korrektes Datum zu machen. Funktioniert für Timestamps AFAIK eigentlich wunderbar, wenn man's aber als Timeslice missbraucht, bin ich mir nicht mehr so sicher. Ist dann wohl doch so, dass das nicht richtig klappt...
Tja, dann muss es halt doch irgendwie anders gehen. Vielleicht tüftel ich mal noch ein bischen dran rum, jetzt muss ich aber erst mal wieder das machen, wofür ich hier bezahlt werde...
Viel Spaß noch
Martin
Also jetzt gibt's bei mir wirklich den Overkill - SYSTEM OVERLOADED, DEADLOCK REGISTERED!
Okay, ich versuch das wirklich in mein Hirn reinzukriegen und obwohl ich mich schon als "anfangenden Fortgeschrittenen" bezüglich meiner PHP-Fähigkeiten betrachte, blick ich grad GAR NIX bei deinen Erklärungen.
Nun kann ich dich wohl kaum dazu überreden, es mir so zu erklären, dass auch mein dummes Hirn es begreift, doch mehr als den Unterschied zwischen Zeitspanne (was ich brauche) und Zeitpunkt (was mktime mir liefert) peil ich einfach nicht.
Deine Berechnung ist irgendwie zu hoch für mich, oder ich bin einfach zu blöd dafür...
Weil ich blick nicht ganz, was du im Jahr 18 u. Z. willst, wenn ich in 1986 bzw. 1963 bzw. 2005 bin...
Ich hoffe, du kannst es mir so erklären, dass auch ein Doofy wie ich das gepeilt kriegt...
BtW: Was für 'ne Tätigkeit bei tutorials.de wird bitte bezahlt