webForumDet fria alternativet

datum till svenska

11 svar · 571 visningar · startad av SugarDaddy

SugarDaddyMedlem sedan apr. 20021 155 inlägg
#1

hm, sitter med en rad som ser ut så här:

<? echo date ("F d Y", mktime (0,0,0,$datesplit[1],$datesplit[2],$datesplit[0]));?>

vilket ger utskriften January 04 2003.
Svensk som jag är vill jag ha det till 4 januari 2003 - hur? Bara byta plats på F o d blir inte rätt, osäker på hur setlocale funkar och om det ska användas här?

/Magnus

GaqziMedlem sedan aug. 2002224 inlägg
#2

Det finns faktiskt en sådan funktion här på webforum, http://www.webforum.nu/showthread.php?s=&threadid=37532.

SugarDaddyMedlem sedan apr. 20021 155 inlägg
#3

Aha, bockar o bugar - ska bara försöka få in den i mitt skript också. Tack! :)

/Magnus

FlashesMedlem sedan jan. 2003282 inlägg
#4

Jag har gjort en förändring i Kalles script som jag vill ha, det ser ut så här.

<?php
$today = getdate(); 
$month = $today['month']; 
$mday = $today['mday']; 
$year = $today['year'];
$wday = $today['wday']; 

if ($month == "January")
{$month = "Januari";}
if ($month == "February")
{$month = "Februari";}
if ($month == "March")
{$month = "Mars";}
if ($month == "May")
{$month = "Maj";}
if ($month == "June")
{$month = "Juni";}
if ($month == "August")
{$month = "Augusti";}
if ($month == "October")
{$month = "Oktober";}

if ($wday == "0")
{$wday = "Söndag";}
if ($wday == "1")
{$wday = "Måndag";}
if ($wday == "2")
{$wday = "Tisdag";}
if ($wday == "3")
{$wday = "Onsdag";}
if ($wday == "4")
{$wday = "Torsdag";}
if ($wday == "5")
{$wday = "Fredag";}
if ($wday == "6")
{$wday = "Lördag";}

if ($mday == "1" . "2" . "21" . "22" . "31")
{
echo "$wday, $mday:a $month $year";
}
else
{
echo "$wday, $mday:e $month $year";
}
?>

Utskriften blir alltså:
Onsdag, 15:e Januari 2003

Mvh
Jan-Olov

bionicMedlem sedan sep. 200347 inlägg
#5

Hur gör jag en funktion av detta? Så att jag bara skriver t.ex. svdate($datum) ?

AsterixMedlem sedan dec. 1999483 inlägg
#6

Detta bör funka. Orkade inte lägga in veckodagar men det borde du själv kunna göra om du vill.

<?php
function svdate($month, $day, $year)
{
  $months = array ('januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', oktober', 'november', december');
  if (in_array ($day, array(1, 2, 21, 22, 31))
  {
    return $day .':e '. $months[$month] .' '. $year;
  }
  else
  {
    return $day .':a '. $months[$month] .' '. $year;
  }
}

echo svdate (10, 1, 2003);
?>
bionicMedlem sedan sep. 200347 inlägg
#7

Fatal error: Call to undefined function: inarray() får jag..

AsterixMedlem sedan dec. 1999483 inlägg
#8

missade ett "_" "in_array" ska det vara. Har även ändrat i koden

bionicMedlem sedan sep. 200347 inlägg
#9

EDIT:
har datumet i databasen i ett fält av typen datetime...
använder jag $datum2 = date("m, d, Y", strtotime($datum1)); får jag ju ut datumet i rätt format, men det funkar ändå inte att köra svdatum($datum2).

Får
Warning: Missing argument 2 for svdate()
Warning: Missing argument 3 for svdate()

Vad är fel?
Ingen som vet?

--------------------------------------------------
Tackar, nu funkar det!
Var några småfel i koden...som 3 glömda ' och en ) men det märkte jag :)

tack för hjälpen än en gång!

bionicMedlem sedan sep. 200347 inlägg
#10

upp

2basMedlem sedan juni 2001181 inlägg
#11

Annat sätt med setlocale (som nämns i översta posten)

 
setlocale(LC_TIME, 'sv_SE');
strftime("%e %B kl %H:%M" , time());

%e %B .... fås från http://se.php.net/strftime

bionicMedlem sedan sep. 200347 inlägg
#12

Ingen som vet hur jag ska göra detta? 2bas kod blev inte riktigt samma sak :(

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