webForumDet fria alternativet

Motsvarighet till session.lcid i php

14 svar · 559 visningar · startad av Leijonkungen

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

onkelborgMedlem sedan juli 2003555 inlägg
#2

Jo, med Response.lcid

K@llenMedlem 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.

QimenMedlem sedan juni 20015 009 inlägg
#4

onkelborg skrev:

Jo, med Response.lcid

Det är ju verkligen php. :OO

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

Patrik81Medlem 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

LeijonkungenMedlem 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'])); ?>
Patrik81Medlem 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

LeijonkungenMedlem 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.

LeijonkungenMedlem sedan apr. 200428 inlägg
#10

Ingen som kan hjälpa mig med detta?

MeleaMedlem sedan juli 20033 147 inlägg
#11

Precis som K@llen skriver så ska

setlocale(LC_ALL, "swedish");

högst upp på sidan fungera.

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

onkelborgMedlem sedan juli 2003555 inlägg
#13

onkelborg skrev:

Jo, med Response.lcid

Ha ;) Jag missuppfattade frågan helt ;)

MatteMedlem 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
LeijonkungenMedlem 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!

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)