php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.11.2004, 12:47  
Gast
 
Beiträge: n/a
Standard [Erledigt] Altersberechnung vor dem 1.1.1970

Hallo Leute,

ich habe mir ne Function geschreiben, die das alter anhand eines geburtsdatums (im SQL Format) berechnet !
Es werden Schaltjahre ... berücksichtigt.

Leider ist mir erst jetzt aufgefallen, das die ganze Function nur bei Personen, deren Geburtsdatum nicht vor dem 1.1.1970 liegt 100% funktioniert.

Kann mir einer von Euch sagen, wie diese Function auch bei Leuten die vor dem 1.1.1970 geboren worden sind funktioniert ?

Ich bin am verzweifeln und das script in schon in ECHTBETRIEB !!!

Code:
function alter($geburtsdatum) {
        //Geburtstag in Timestamp konvertieren
        list($gebjahr, $gebmonat, $gebtag) = explode("-", $geburtsdatum);
        $geburt = mktime(0,0,0,$gebmonat,$gebtag,$gebjahr);
        // Aktuelles Datum als Timestamp
        $aktuell=time();
        // Millisekunden seid Geburt
        $msek = $aktuell - $geburt;
        //Alter in Tagen
        $tage = floor($msek/(3600*24));
        //Alter in Jahren
        $jahr = floor($tage/365);
        $gesamt = $gebjahr+$jahr;
     
        // Schaltjahre berücksichtigen (wenn die Jahreszahl durch 4 oder ... teilbar, dann Schaltjahr)
        $i=0;
        for($gebjahr; $gebjahr < $gesamt; $gebjahr++) {
             if($gebjahr % 4 == 0) {
                  $i=$i+1;
            }
            if($gebjahr % 400 == 0) {
                  $i=$i+1;
            }
        }
        if ($tage-((365*$jahr)+$i) < 0) {
            $jahr--;
        }
        return $jahr;
    }
Vielen dank schonmal für Eure Hilfe !!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.11.2004, 12:56  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://test.php-help.info/age/

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431

moved to PHP - Fortgeschrittene

mach ich es heute mal ins fortgeschrittenen forum ...mehr ist es aber definitiv nicht ..
imported_Ben ist offline   Mit Zitat antworten
Alt 15.11.2004, 13:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

http://pear.php.net/package/Date/

Dokumentation ist unter aller Sau ... nämlich nicht vorhanden ... von phpDoc-generiertem Suchs-Dir-Selbst-Spielchen mal abgesehen ...

Trotzdem ist dein Vorhaben hiermit ohne grosse verrenkungen möglich (genaugenommen sogar mit weniger als du jetzt bereits nutzt).
Guradia ist offline   Mit Zitat antworten
Alt 15.11.2004, 13:52  
Gast
 
Beiträge: n/a
Standard

Erstmal Danke für den Link !! aber mit Dokumentation unter aller Sau hast Du recht ...
Da sitze ich ja Tage dran bis ich das alles hinbekomme ?!

Hast Du nicht "die schnelle" Lösung so parat ?
oder kannst mur nen Tip geben wie ich es schnell nutzen kann !?

Grüße

Sven
  Mit Zitat antworten
Alt 15.11.2004, 13:56  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von spectra
Hast Du nicht "die schnelle" Lösung so parat ?
du bist auch meinem link gefolgt?
imported_Ben ist offline   Mit Zitat antworten
Alt 15.11.2004, 15:03  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

scheinbar nicht...
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline   Mit Zitat antworten
Alt 15.11.2004, 20:27  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

wenns gleich aus der db kommen soll

http://dev.mysql.com/doc/mysql/de/Da...culations.html

mysql> SELECT name, geburtstag, CURRENT_DATE,
-> (YEAR(CURRENT_DATE)-YEAR(geburtstag))
-> - (RIGHT(CURRENT_DATE,5)<RIGHT(geburtstag,5))
-> AS age
-> FROM pet;
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 16.11.2004, 08:59  
Gast
 
Beiträge: n/a
Standard

Hier 2 Muster (zum testen):

<?php

$geburtsdatum = "1904-11-18";

list($gebjahr, $gebmonat, $gebtag) = explode("-", $geburtsdatum);

$AlterInJahren = (date("Y")-$gebjahr-(date("md")<($gebmonat.$gebtag))) ;

echo "$geburtsdatum ---> heute: ".date('Y-m-d') ." ---> Alter in Jahren: $AlterInJahren";

?>

/*
// und in MYSQL so:

"
SELECT *,
(YEAR(NOW())-YEAR(geburtstag)-((MONTH(geburtstag)+(DAYOFMONTH(geburtstag)>DAYOFM ONTH(NOW())))>MONTH(NOW()))) as jahrealt
FROM tabelle
"

*/
_____________
mfG -dilemma-
  Mit Zitat antworten
Alt 17.11.2004, 17:52  
Gast
 
Beiträge: n/a
Standard

Die Datumsberechnungsfunktionen der ADODB-Lib http://phplens.com/lens/adodb/docs-adodb.htm verwenden. PEAR ist viel zu fett und unübersichtlich (IMHO)

Der Fehler liegt in der Verwendung der mktime() Funktion, die nur mit Stamp-Werten zwischen 01.01.1970 und irgendwann in 2038 arbeiten kann. ADODB bringt genau um das Problem zu lösen die Funktion adodb_mktime mit, die genau so aufgerufen wird wie die native PHP-mktime(), aber mit einem viel breiteren Zeitfenster arbeiten kann.

Grüsse

Lev
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
sortieren nach datum, daten vor 1.1.1970 moose Datenbanken 2 21.07.2008 10:50
EXAKTE Altersberechnung Neo2k3 PHP Tipps 2006 4 06.08.2006 21:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tage seit 1.1.1970, php date älter als 1970, schaltjahre seit 1970, datum unter php vor 1.1.1970, php alter schaltjahr, php 1.1. aktuelles jahr, html alter berechnung schaltjahr monat tage, html alter berechnung schaltjahr, php script alter berechnen schaltjahr, 1.1.1970 php, tag seit 1.1.1970, tage seit 1.1.1970 php, tage nach dem 1.1.1970, geburtalter in stunden, php alter ausrechnen schaltjahre, älter 1970 if php, if geburtsjahr < 1970, tage seit dem 1.1.1970, php berechnung alter vor 1970, http://www.php.de/php-fortgeschrittene/12337-altersberechnung-vor-dem-1-1-1970-a.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.