Avatar billede tjensen Nybegynder
14. december 2004 - 18:06 Der er 13 kommentarer og
1 løsning

Håndtering af dato'er (fødselsdag)

Hey Eksperter!

Hvordan vil I mene det er lettest at håndtere fødselsdage.
De opretter sig via en <form><input....

Hvilken mysql opsætning er bedst med henblik på let at tækkke det ud igen, og bruge det som en oversigt over hvem de 5 næste er der har fødsels dag. Hvilken dato det er og hvor gamle de bliver.

Har læst en masse forskellige, men der er 10.000 måde og alle ser bestem ikk lige lette ud.

Hilsen Thomas
Avatar billede mikkelk Nybegynder
14. december 2004 - 18:18 #1
Kan du ikke bare sortere med datediff? Altså noget i retning af:
SELECT * from fodselsdage order by DATEDIFF(fodselsdato,now)
Avatar billede mikkelk Nybegynder
14. december 2004 - 18:19 #2
- Skal lige nævnes at jeg aldrig selv har brugt den funktion i MySQL - så garanterer ikke for noget
Avatar billede tjensen Nybegynder
14. december 2004 - 18:21 #3
hmm har læst lidt om det.. Det jeg bare gerne ville have var helt fra starten, så det jeg ligger ind i min mysql db har den rigtige formatering til et let smart udtag.
Avatar billede mikkelk Nybegynder
14. december 2004 - 18:25 #4
Lav 3 select's til henholdsvis år, måned og dag - så er du sikker på at det er nemt at håndtere og formatere korrekt. Og så lav et dato-felt i MySQL som du smider det i
Avatar billede mikkelk Nybegynder
14. december 2004 - 18:26 #5
Datohåndtering er jo altid problematisk og man fristes nemt til at dele det op i 3 felter, men jeg vil klart foretrække at holde tungen lige i munden og forsøge at håndtere det som et egentlig datofelt.
Avatar billede tjensen Nybegynder
14. december 2004 - 18:39 #6
jeps, jeg søger også efter en der har erfaring i det, og kan hjælpe mig, så jeg er fri for at dele det op..
Avatar billede tjensen Nybegynder
14. december 2004 - 18:41 #7
Lige nu har jeg lavet det sårledes:
Den gemmer det i en varchar 1984-02-28    (står for 28.Februar 1984) :)

og så bruger jeg det sårledes:
<?php
while($row = mysql_fetch_array($sql)) {
    $dato = strtotime($row['fdag']);
    $fdag = date('d.M', $dato);
    $alder = date('Y')-date('Y',$dato)+1;
?>
        <tr>
            <td><p id="p_fdag"><?php echo "{$row['fornavn']} {$row['efternavn']}"?></p></td>
            <td><p id="p_fdag"><?php print $fdag?></p></td>
            <td><p id="p_fdag"><?php echo "{$alder} år"?></p></td></tr>
<?php
}
?>
Avatar billede tjensen Nybegynder
14. december 2004 - 18:42 #8
Hvilket slet ikke er optimalt! Og faktisk heller ikke virker hele tiden.
Avatar billede mikkelk Nybegynder
14. december 2004 - 20:09 #9
Du skal aldrig gemme en dato som et tekstfelt - det duer ikke... gem det som et datetime-felt istedet...
Men derudover kan jeg ikke hjælpe meget når det er php.
Avatar billede tjensen Nybegynder
14. december 2004 - 20:41 #10
hehe, okay.. Nej vil heller ikke gemme som varchar, derfor jeg søger lidt hjælp. Ellers tak ;)
Avatar billede mikkelk Nybegynder
14. december 2004 - 20:55 #11
Jamen hvad er det du skal have hjælp til? det handler bare om at gemme den i formattet yyyy-mm-dd, nøjagtigt som du gør nu, men i et datetime-felt istedet og så benytte et udtræk a'la: SELECT * from fodselsdage order by DATEDIFF(fodselsdato,now)

- jeg har benyttet noget i den dur flere gange med ASP og MySQL og det har fungeret fint.
Avatar billede tjensen Nybegynder
14. december 2004 - 21:17 #12
okay, noget begynder at gå op for mig.. date består altid af yyyy-mm-dd ? Det er en aha ting for mig! heh, flovt... =)

Her er et link til ide for php hoveder
http://eksperten.dk/spm/537470

Tak for hjælpen mikkelk! Drop lige et svar, altså drop på siden ik', ikk drop det vel ;)
Avatar billede mikkelk Nybegynder
14. december 2004 - 21:20 #13
Godt du fandt ud af det :-) Og fortsat god fornøjelse med dato-håndteringen...
Avatar billede mikkelk Nybegynder
14. december 2004 - 21:20 #14
hov :-) glemte et svar...
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
Computerworld tilbyder specialiserede kurser i database-management

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