Avatar billede qualon1 Nybegynder
31. juli 2007 - 12:13 Der er 6 kommentarer

strftime på dansk

Hej

Jeg bruger strftime til at udskrive tid og dato på min hjemmeside, men den udskriver det på engelsk, fx bliver okt = oct osv. Foran ændre man dette så det bliver på dansk?

har prøvet setlocale(LC_TIME, "danish"); men virker ikke
Nogen der kan hjælpe?
Avatar billede duuink Nybegynder
31. juli 2007 - 12:30 #1
jeg kender selv problemet og har endnu ikke fundet en smart løsning ud over at lave det på den hårde måde ved at konvertere det selv. så jeg lytter med på hvad de kloge hoveder har at sige til det. Selvom jeg desværre ikke tror at der er en nem løsning på det.
Avatar billede cbdavl Nybegynder
31. juli 2007 - 17:35 #2
kan du ikke bare lave noget array ting:

$bmonth["oct"] = "okt";
echo $bmonth[$amonth];

Det burde gøre det...
Avatar billede mcardle Nybegynder
31. juli 2007 - 22:52 #3
Du kan bruge det her, du skal bare skifte time() ud, med det timestamp du vil bruge.

<?php

$month["Jan"] = "januar";
$month["Feb"] = "februar";
$month["Mar"] = "marts";
$month["Apr"] = "april";
$month["May"] = "maj";
$month["Jun"] = "juni";
$month["Jul"] = "juli";
$month["Aug"] = "august";
$month["Sep"] = "september";
$month["Oct"] = "oktober";
$month["Nov"] = "november";
$month["Dec"] = "december";

$day["Mon"] = "mandag";
$day["Tue"] = "tirsdag";
$day["Wed"] = "onsdag";
$day["Thu"] = "torsdag";
$day["Fri"] = "fredag";
$day["Sat"] = "lørdag";
$day["Sun"] = "søndag";

$timestamp = time(); // Det skal så være dit timestamp fra db'en eller hvor du nu får det fra.

echo $day[date("D", $timestamp)] . " d. " . date("j", $timestamp) . " " . $month[date("M", $timestamp)] . " " . date("Y", $timestamp);

?>

Håber det hjælper.

//mcardle
Avatar billede kinderaeg Nybegynder
01. august 2007 - 02:41 #4
Er du sikker på at din locale hedder "danish"? Prøv evt med nedenstående til at finde locales på dit system.

function list_system_locales(){
  ob_start();
  system('locale -a');
  $str = ob_get_contents();
  ob_end_clean();
  return split("\\n", trim($str));
}

Du kan evt lave et loop der forsøger at sætte local'en mere end en gang, den kan nogle gange være lidt træg ;)

function setLoc($loc) {
  $i=0;
  do {
    $locale_result = setlocale(LC_TIME, $loc);
  } while ($locale_result != $loc && $i++ < 10);
}
Avatar billede way3000 Nybegynder
01. august 2007 - 22:28 #5
setlocale(LC_ALL, "danish");  sådan ser den vist ud idag.
Det virker i hvert fald for mig.
Avatar billede mcardle Nybegynder
01. august 2007 - 22:59 #6
Prøv denne her, jeg kunne nemlig heller ikke få det til at virke, men fandt denne her.:

$dateString = "%e %B %G";
setlocale(LC_ALL,'danish');
$res=strftime($dateString);
echo(iconv('ISO-8859-1', 'UTF-8', $res));
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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