Find alder ud fra dd/mm/YYYY

Tags:    php

Jeg er i gang med at omkode et ansøgning scripts.

Og har nu fået lavet datepicker ind i det. Med henblik på fødselsdag.
Så vil jeg lige høre jer, om der findes en metode der kan udregne dd/mm/YYYY til alder i dag.

28/06/1912 = 100 år ?.



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Nej, den er ikke præcis, da du kun kigger på årstal. En der har fødselsdag 31/12/1912 vil stadig være 100 år hvis du sammenligner med dd. selvom vedkommende reeelt kun er 99 år.

Prøv denne i stedet:

http://php.net/manual/en/datetime.diff.php





Indlæg senest redigeret d. 28.06.2012 11:31 af Bruger #10216
der er forskellige måder, at gøre det på ... du kan selv beregne det ved, at kigge på datoen og sammenligne med dags dato. F.eks. 1912 - date("Y") ... og hvis dags dato > date("d") så er det år + 1.

Eller du kan konvertere din dato 28/06/1912 til unixtimestamp og trække det fra dagsdatos timestamp og så omkonvertere det til en læselige time stamp igen. Så vil du få forskellen som f.eks. 100 years 2 hours 10 min ... etc.

Men det er lidt op til dig selv. Du kan jo overveje hvordan du selv gør det i virkeligheden og så bare lave det samme i kode.



Ser ud til at du ikke har DateTime::diff, som først er implementeret i PHP5.3 (altså du arbejder med en tidl. version). Så du bliver nødt til at udregne differencen manuelt.

Du kan vist benytte dette link:
http://www.if-not-true-then-false.com/2010/php-calculate-real-differences-between-two-dates-or-timestamps/



Er denne her udmærket:
Fold kodeboks ind/udPHP kode 


Testede med en dato på min svoger: 29 år ud fra 20/08/1982

Og han er 29. Men er den præcis med udregning af måneder osv. ?





Indlæg senest redigeret d. 28.06.2012 11:04 af Bruger #17281
Okay, ja det selvfølgelig rigtigt.
En præcis dato vil være at den tjekker om:

dag = d
måned = m
år = Y

Hvis det er d.19/08/1982 er man stadig 28. Og er det d.20/08/1982 (er man 29) og frem til næste år, hvor samme dato er now()

.. uden Y men d/m.
Men det vil jeg da lige lege lidt med så. Og tak.
Det giver da mening med den skal tjekke dag & måned .. så den ikke siger 29 år i nogle dage/måneder for tidligt/sent:)



-
Får bare denne fejl:

Fatal error: Call to undefined method DateTime::diff() in

Fold kodeboks ind/udPHP kode 


Line:
$diff = $birth->diff($today);



Indlæg senest redigeret d. 28.06.2012 11:54 af Bruger #17281
Har lige et spørgsmål igen.

Har leget lidt med den samme. Men vil nu høre om den er præcis eller bare som før.
I db er den sat sådan her: 20-02-1985

Som dato1 tjekker ud med.

Fold kodeboks ind/udPHP kode 


Den gamle:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 11.07.2012 12:27 af Bruger #17281
t