2016-06-02 20 views
0

Weiß jemand, wie ich mein Alter und verbleibende Tage mit MySQL berechnen kann, unter Berücksichtigung von Schaltjahren?PHP MYSQL Jahre und Tage berechnen

Ich fand Beispiele, die die Gesamtzahl der Tage berechnen können.

Aber ich möchte ein Ergebnis wie:

22 years, 134 days, 
23 years, 361 days  
24 years, 11 days 

Vorerst ich das bekam:

SELECT 
    name, 
    dob, 
    TIMESTAMPDIFF(YEAR, dob, now()) as _year, 
    TIMESTAMPDIFF(MONTH, dob, now()) % 12 as _month, 
    FLOOR(TIMESTAMPDIFF(DAY, dob, now()) % 30.4375) as _day 
FROM 
    client 

Aber das funktioniert nicht und% 30,4375 ist keine Lösung für Schaltjahre.

+2

Was haben Sie versucht? Wo hast du Probleme? Bitte fügen Sie Ihren versuchten Code ein. –

Antwort

0

Wie wäre es damit:

SELECT 
    name, 
    dob, 
    TIMESTAMPDIFF(YEAR, dob, now()) years, 
    TIMESTAMPDIFF(DAY, TIMESTAMPADD(YEAR, TIMESTAMPDIFF(YEAR, dob, now()), dob), now()) days 
FROM 
    client; 

Der erste Teil der Jahre bekommt, zweiten Teil ergänzt Jahre bis zum Geburtsdatum, um den letzten Geburtstag zu bekommen & dann bekommt die Anzahl der Tage seit dann.

+0

Danke Paul, das funktioniert! – Arie

0

MySQL ist in erster Linie eine Datenbank und nicht und Render-Engine. Ich würde vorschlagen, die PHP-Datetime-Objekt mit der Zeitspanne zu handhaben - nachdem Sie die Daten aus der MySQL-Server geladen:

$d1=new DateTime($row['dob']); 
$d2=new DateTime('now'); 
$diff=$d2->diff($d1); 
print_r($diff) ; 
Verwandte Themen