webForumDet fria alternativet
Logga in / Bli medlem

Motsvarighet till session.lcid i php

PHP

14 svar · 562 visningar · startad av Leijonkungen

Medlem sedan apr. 200428 inlägg
Trådstart#1

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.

Medlem sedan juli 2003555 inlägg
#2

Jo, med Response.lcid

Medlem sedan mars 20032 667 inlägg
#3

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.

Medlem sedan juni 20015 009 inlägg
#4

onkelborg skrev:

Jo, med Response.lcid

Det är ju verkligen php. :OO

Medlem sedan apr. 200428 inlägg
#5

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. :(

Medlem sedan okt. 2001538 inlägg
#6

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

Medlem sedan apr. 200428 inlägg
#7

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'])); ?>
Medlem sedan okt. 2001538 inlägg
#8

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

Medlem sedan apr. 200428 inlägg
#9

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.

Medlem sedan apr. 200428 inlägg
#10

Ingen som kan hjälpa mig med detta?

Medlem sedan juli 20033 147 inlägg
#11

Precis som K@llen skriver så ska

setlocale(LC_ALL, "swedish");

högst upp på sidan fungera.

Medlem sedan apr. 200428 inlägg
#12

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. :(

Medlem sedan juli 2003555 inlägg
#13

onkelborg skrev:

Jo, med Response.lcid

Ha ;) Jag missuppfattade frågan helt ;)

Medlem sedan aug. 20002 975 inlägg
#14

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
Medlem sedan apr. 200428 inlägg
#15

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!

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)