Avatar billede thb Nybegynder
09. juni 2004 - 00:48 Der er 8 kommentarer og
1 løsning

Funktion til flip af dato

Hej alle

Jeg har et kalender script som returnere en dato til via et form felt.. den dato vil jeg så validere og smide i en database..

Problemet er så at dato skal smides i dben som YYYY-MM-DD men til tider vil blive returneret som DD-MM-YYYY hvis sporget på siden er sat til dansk...

Jeg vil gerne lave en funktion som returnere et engelsk format ud fra en given dato..

Thomas
Avatar billede thb Nybegynder
09. juni 2004 - 00:49 #1
Dvs. at jeg f.eks kan skrive flipDato($dato) på alle datoer og så returnere den bare en dato af formatet YYYY-MM-DD
Avatar billede detox Nybegynder
09. juni 2004 - 01:00 #2
Fx:

<?
function flip($dato) {
    if (preg_match("/^\d{4}-\d{2}-\d{2}/", $dato)) {return $dato;}
    elseif (preg_match("/^\d{2}-\d{2}-\d{4}/", $dato)) {
        $array = explode('-', $dato);
        return implode('-', array_reverse($array));
    } else {
        return "Ukendt format";
    }
}

$dato = "24-12-2000";
echo flip($dato);
?>
Avatar billede detox Nybegynder
09. juni 2004 - 01:04 #3
Eller måske endda:

function flip($dato) {
    if (preg_match("/^\d{4}-\d{2}-\d{2}$/", $dato)) {return $dato;}
    elseif (preg_match("/^\d{2}-\d{2}-\d{4}$/", $dato)) {
        return implode('-', array_reverse(explode('-', $dato)));
    } else {
        return "Ukendt format";
    }
}
Avatar billede swaxi Nybegynder
09. juni 2004 - 01:24 #4
for en god ordens skyld : databasen bruger ikke amerikansk format, den bruger ISO-format.
YYYY-MM-DD er utvetydigt, eftersom formatet YYYY-DD-MM ikke findes.
til gengæld kan MM-DD-YYYY (usa) forveksles med DD-MM-YYYY
englænderne bruger i øvrigt samme syntaks som os danskere. forvirringen opstår først når vi bevæger os over atlanten.

har du overvejet, at bruge en dhtml/javascript datepicker til, at håndtere datoen, og så bare konsekvent bruge ISO-formatet ? (hint: det er en god idé)
prøv eks. med : http://dynarch.com/mishoo/calendar.epl
undskyld hvis jeg spammer dit spørgsmål med ligegyldige kommentarer :)
Avatar billede thb Nybegynder
09. juni 2004 - 09:52 #5
detox > Tak, jeg prøver scriptet her senere, men det virker helt sikkert.. :D
Har du ikke nogle artikler eller lign så jeg kan lære at bruge de der forskellige preg funktioner..

swaxi > Jeg synes ikke at det er spam.. Hvis du mener at skal bruge en lign kalender til at vælge min kalender, så gør jeg det allerede, men kalenderen smide jo et format ud i et text felt, og formatet afhænger at sproget på siden...

Thomas
Avatar billede detox Nybegynder
09. juni 2004 - 12:11 #6
Jeg har ikke set så meget på den her, men den ser ok ud:
http://www.regularexpressions.info/

Da preg-match er PERL kompatibel er der osse denne:
http://www.perldoc.com/perl5.6/pod/perlre.html

Her er lidt på dansk:
http://www.linuxbog.dk/unix/bog/joker-redir-kanaler.html#regexp

Og sidst men ikke mindst vil jeg anbefale php manualen, som er meget detaljeret:
http://dk.php.net/manual/en/ref.pcre.php
Avatar billede thb Nybegynder
09. juni 2004 - 12:20 #7
takker igen...

Det er noget forvirrende noget det der... :D

Thomas
Avatar billede swaxi Nybegynder
10. juni 2004 - 21:26 #8
> men kalenderen smide jo et format ud i et text felt, og formatet afhænger at sproget på siden

det kommer jo an på hvordan din kalender virker. hvis den er lavet ordentligt, så sprøjter den en ISO-formateret dato ud. og det ligegyldigt hvilket sprog folk har på siden.
Avatar billede thb Nybegynder
10. juni 2004 - 23:40 #9
Det kan du have ret i, men jeg synes at det ser pænt ud hvis der står DD-MM-YYYY på en dansk side og ikke YYYY-MM-DD

Hvis du forstår..

Thomas
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