Avatar billede showsource Seniormester
03. februar 2015 - 01:15 Der er 7 kommentarer og
2 løsninger

Dansk ugedag problem

Hej
Jeg bruger:
SET lc_time_names='da_DK'
i en query for at få danske ugedage ved udtræk fra et felt af DATE typen, 2015-02-02
Virker fint på min lokale comp, men når jeg lægger det ud på nettet er lørdag og søndag ikke korrekt vist.
s�ndag
( ved ikke om exp viser mit eksempel. rigtigt )
De phpfiler jeg bruger er alle utf8

Er det noget med SET NAMES først eller hvad ?

Kan godt gemme æ, ø og å i DB via en form, og senere få dem vist rigtigt.
Avatar billede arne_v Ekspert
03. februar 2015 - 02:31 #1
Hvorfor ikke lave den formatering i applikationen (PHP, C# eller hvad du nu bruger)?
Avatar billede showsource Seniormester
03. februar 2015 - 06:05 #2
Det var også min første tanke.
Bl.a. for at sikre lign. problemer uanset hvilken server det ligger på.

Men nu har jeg startet på det, og alt andet lige, det er nemmere når det fungerer :O)
Avatar billede showsource Seniormester
03. februar 2015 - 06:10 #3
undgå lign. ................
Avatar billede arne_v Ekspert
04. februar 2015 - 02:47 #4
Du kan jo proeve med:

SET NAMES utf8

og s eom det virker.

:-)
Avatar billede showsource Seniormester
05. februar 2015 - 05:26 #5
Det gjorde det så ikke.
Og vælger så også at lave det php i stedet.
Smid et svar, så deler vi point.
Avatar billede showsource Seniormester
05. februar 2015 - 06:41 #6
Efter lidt overvejelser blev det så til:

function vis_dag($var) {

    if(false == $tid = strtotime($var)) {
    return "???";
    }
   
$dk_dag = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag");

return $dk_dag[date("w", $tid)]." d. ".date("j/n", $tid);
   
}
Avatar billede arne_v Ekspert
06. februar 2015 - 03:05 #7
Du beheover ikke lave dit eget array.

strftime og %A vil med den rigtige locale virke.

Demo:

<?php
setlocale(LC_TIME, 'danish_Denmark');
echo strftime("%A", time());
?>
Avatar billede arne_v Ekspert
06. februar 2015 - 03:05 #8
og et svar
Avatar billede showsource Seniormester
06. februar 2015 - 20:45 #9
setlocale har jeg aldig været glad for.
Server-setup er gældende.
( min erfaring, anyway )

Og troede ikke det samme ville ske i mysql, men .....

Og så blev det til:

function vis_dag($var, $aar=false) {

    if(false == $tid = strtotime($var)) {
        return "???";
    }
   
$dk_dag = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag");

return $dk_dag[date("w", $tid)]." d. ".date("j/n".($aar != false ? " Y" : ""), $tid);
   
}

Har en enkelt side hvor årstal skal på.
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