webForumDet fria alternativet

även setlocal() i en variabel

7 svar · 293 visningar · startad av donkey

donkeyMedlem sedan jan. 2004179 inlägg
#1

Håller på med min första gästbok (med mysql) och försöker nu få månaderna på svenska. Nu använder jag
$month = strftime("%B ");
för att få månaden i en variabel som jag sedan skickar till databasen. Men problemet är att månaden då blir på engelska.
Skriver man ut månaden direkt på sidan går det ju att göra

setlocale(LC_ALL, 'sve');
echo strftime("%B ");

men om jag vill ha med setlocal(LC_ALL, 'sve'); till databasen i variabeln, hur gör jag då?
Eller finns det något annat sätt som översätter månaden innan jag skickar den till databasen?

MeleaMedlem sedan juli 20033 147 inlägg
#2

Har aldrig riktigt fått koll på setlocale() så jag använder den här funktionen

function DateFix($date) {

    $days = array(0=>"Söndag", 1=>"Måndag", 2=>"Tisdag", 3=>"Onsdag", 4=>"Torsdag", 5=>"Fredag", 6=>"Lördag");
    $months = array(1=>"Januari", 2=>"Februari", 3=>"Mars", 4=>"April", 5=>"Maj", 6=>"Juni", 7=>"Juli", 
	8=>"Augusti", 9=>"September", 10=>"Oktober",  1=>"November", 12=>"December");

	$mday = date("j", strtotime($date));
    $wday = date("w", strtotime($date));
    $month = date("n", strtotime($date));

	if($mday == 1 || $mday == 2 || $mday == 21 || $mday == 22 || $mday == 31 ) {
		$new_date = $days[$wday].' '.date("j", strtotime($date)).':a '.$months[$month].' '.date("Y", strtotime($date));
	} else {
		$new_date = $days[$wday].', '.date("j", strtotime($date)).':e '.$months[$month].' '.date("Y", strtotime($date));
	}

    return $new_date;

}
donkeyMedlem sedan jan. 2004179 inlägg
#3

kanske borde ha skrivit det, men jag är nybörjare :r vad ska jag skriva för att få ut månaden på sidan sen?
har testat
echo $date; och echo $new_date; men får bara Undefined variable

MeleaMedlem sedan juli 20033 147 inlägg
#4

:)

Förslagsvis lägger du funktionen i ett eget dokument som du kallar "function.php". Därefter inkluderar du den överst på den sidan där du vill använda funktionen.

include('function.php');

Sen där du ska skriva ut skriver du endast

echo DateFix('text med ett datum, ex. 2004-06-01 13:05:58, detta borde funka... ');
donkeyMedlem sedan jan. 2004179 inlägg
#5

funkade bra, tack så mycket!!

MeleaMedlem sedan juli 20033 147 inlägg
#6

Gott, vargod!

MeleaMedlem sedan juli 20033 147 inlägg
#7

Har smygtittat lite på din sida, och ser att du har lite problem.
Om det är så, lägg bara funktionen på enklast möjliga vis ovanför loopen som skriver ut alla gästboksinlägg. Sedan skriver du

DateFix($rows['Datum'])

(byt ut $rows och datum mot vad nu din kolumn heter.)

donkeyMedlem sedan jan. 2004179 inlägg
#8

tack för meddelandet i gästboken!
hade lite problem just när du var inne, men nu ska det fungera som det ska... återigen tack för hjälpen!!

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