Avatar billede cmau Nybegynder
09. maj 2005 - 18:06 Der er 15 kommentarer og
1 løsning

Udregn alder udfra dato

Hejsa,jeg har 3 felter:

`birth_day` VARCHAR( 255 ) NOT NULL ,
`birth_month` VARCHAR( 255 ) NOT NULL ,
`birth_year` VARCHAR( 255 ) NOT NULL ,

De kan finde holde:

28
06
1989

Hvordan omregner jeg det til år?
Avatar billede jm0_ Nybegynder
09. maj 2005 - 18:17 #1
Det kan gøres sådan her.

$regn = date('Y') - 1989;
Avatar billede cmau Nybegynder
09. maj 2005 - 18:18 #2
Nej den tager jo slet ikke højde for dage og måneder!
Avatar billede jm0_ Nybegynder
09. maj 2005 - 18:19 #3
Ups..

$regn = date('Y') - 1989 - 1;
Avatar billede cmau Nybegynder
09. maj 2005 - 18:21 #4
Det gør den da heller ikke, hvis nu jeg har fødselsdag i morgen, så ville ovenstående give det samme i dag, som i morgen.
Avatar billede jm0_ Nybegynder
09. maj 2005 - 18:22 #5
skal du ikke bare finde ud af hvor gammel man er???
Det gør den kode jeg sendte lige før ^^^^^^^^
Avatar billede cmau Nybegynder
09. maj 2005 - 18:26 #6
Den skal jko være præcis, du kan godt se hvis jeg er 15 i dag ville din skrive 15, som jeg så er, men hvis så jeg har fødselsdag i morgen vil den stadig skrive 15, selv om jeg er 16!
Avatar billede barklund Nybegynder
09. maj 2005 - 18:33 #7
SELECT (TEAR(NOW()) - `birth_year` - IF(MONTH(NOW()) < `birth_month` OR (MONTH(NOW()) = `birth_month` AND DAYOFMONTH(NOW()) = `birth_day`), 1, 0)) AS age FROM table

Tror jeg ;)

--
Morten Barklund
Avatar billede barklund Nybegynder
09. maj 2005 - 18:33 #8
Hov, YEAR, ikke TEAR :)
Avatar billede cmau Nybegynder
09. maj 2005 - 18:46 #9
Den udskriver bare 2005 :S
Avatar billede cmau Nybegynder
09. maj 2005 - 18:50 #10
Hov, min fejl. Det virker vist fint, men hvis jeg skriver 09 06 1989 så skriver den at man stadig er 15, men med 08 06 1989 er man 16, jeg vil sige at man ogs er 16 ved den første.
Avatar billede barklund Nybegynder
09. maj 2005 - 19:01 #11
Lille fejl:

SELECT (TEAR(NOW()) - `birth_year` - IF(MONTH(NOW()) < `birth_month` OR (MONTH(NOW()) = `birth_month` AND DAYOFMONTH(NOW()) < `birth_day`), 1, 0)) AS age

--
Morten Barklund
Avatar billede kack Nybegynder
09. maj 2005 - 19:07 #12
function age($year,$month,$day) {
        $age = ($month > date("m") || ($month == date("m") && $day > date("d"))) ? -1 : 0;
        return date("Y") - $year + $age;
}
$year = $data['year'];
$month = $data['month'];
$day = $data['day'];

$age = age($data['year'],$data['month'],$data['day']);

echo "Alder: $age";


Det virker for mig
Avatar billede cmau Nybegynder
09. maj 2005 - 19:10 #13
Tak!

Smider du svar?
Avatar billede cmau Nybegynder
09. maj 2005 - 19:22 #14
barklund?
Avatar billede barklund Nybegynder
09. maj 2005 - 20:04 #15
Mjææs :)
Avatar billede barklund Nybegynder
09. maj 2005 - 22:11 #16
Tark for points...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester