Hej!
Är det bara jag som är dum eller finns det ingen motsvarighet i php till asp:s session.lcid för att snabbt formatera om exempelvis de datum som skrivs ut från en databas?
Nu får jag ju bara "30 May 2004" och det ser ju för kackigt ut.
14 svar · 559 visningar · startad av Leijonkungen
Hej!
Är det bara jag som är dum eller finns det ingen motsvarighet i php till asp:s session.lcid för att snabbt formatera om exempelvis de datum som skrivs ut från en databas?
Nu får jag ju bara "30 May 2004" och det ser ju för kackigt ut.
Jo, med Response.lcid
Prova med (överst på sidan):
setlocale(LC_ALL, "swedish");
http://se.php.net/manual/en/function.setlocale.php
Jag har dock inte själv använt det, så jag vet inte om det löser ditt problem.
K@llen skrev:
Prova med (överst på sidan):
setlocale(LC_ALL, "swedish");http://se.php.net/manual/en/function.setlocale.php
Jag har dock inte själv använt det, så jag vet inte om det löser ditt problem.
Hmm, det verkade inte fungera tyvärr. :(
Du kan inte ta och hämta datumet ur databasen, förvandla det till en timestamp med strtotime() och sedan formatera det timestampet med date() sedan va?
Tycker det borde funka.
MVH Patrik
Patrik81 skrev:
Du kan inte ta och hämta datumet ur databasen, förvandla det till en timestamp med strtotime() och sedan formatera det timestampet med date() sedan va?
Tycker det borde funka.MVH Patrik
Det är lite det jag gör. Tror jag. Är ingen expert direkt...
Den nya koden för locales ser ut så här:
<?php setlocale(LC_ALL, 'sv_SE', 'sv', 'swedish'); ?>
Och koden som skriver ut datumet ser ut så här:
<?php echo date('j F Y', strtotime($row_rsNyheter['Datum'])); ?>
Jag missförstod nog frågan, förstod inte riktigt att du ville ha det översatt till svenska. :( Och då blev det genast en aning klurigare än vad jag klarar tyvärr.
En fullösning vore ju förstås att lagra alla månadsnamnen på engelska i en array, och på svenska i en annan, och köra en str_replace på den formaterade datum-strängen.
MVH Patrik
Patrik81 skrev:
Jag missförstod nog frågan, förstod inte riktigt att du ville ha det översatt till svenska. :( Och då blev det genast en aning klurigare än vad jag klarar tyvärr.
En fullösning vore ju förstås att lagra alla månadsnamnen på engelska i en array, och på svenska i en annan, och köra en str_replace på den formaterade datum-strängen.MVH Patrik
Jag såg någon lösning på detta i en annan tråd här men kunde tyvärr inte klura ut hur jag skulle implementera det på mitt eget förhållande.
Ingen som kan hjälpa mig med detta?
Melea skrev:
Precis som K@llen skriver så ska
setlocale(LC_ALL, "swedish");högst upp på sidan fungera.
Men det gör tydligen inte det.
Jag hittade något i kommentarerna på länken ovan om att det kunde strula om man körde Mac OS X, vilket jag gör.
Man kunde ladda ned något program men det fungerar inte tyvärr. :(
Någon av följande tre brukar oftast fungera:
setlocale(LC_ALL, 'swedish');
setlocale(LC_ALL, 'sv_SE');
setlocale(LC_ALL, 'sv_SE.ISO8859-1');
Sedan har setlocale ingen funktion på date, du måste använda strftime
echo strftime('%e %B Y', strtotime($row_rsNyheter['Datum']));
// %d istället för %e på Windows samt några OS till
Matte skrev:
Någon av följande tre brukar oftast fungera:
setlocale(LC_ALL, 'swedish'); setlocale(LC_ALL, 'sv_SE'); setlocale(LC_ALL, 'sv_SE.ISO8859-1');Sedan har setlocale ingen funktion på date, du måste använda strftime
echo strftime('%e %B Y', strtotime($row_rsNyheter['Datum'])); // %d istället för %e på Windows samt några OS till
Åh, underbart! Nu löste det sig!
Kan tillägga att det verkar vara
setlocale(LC_ALL, 'sv_SE');
som gäller om man kör Mac OS X.
Tusen tack för hjälpen alla!