Avatar billede brevkasserne Nybegynder
23. juli 2003 - 00:22 Der er 7 kommentarer og
1 løsning

International dato!

Jeg kører på en dansk side med mysql-db, hvor datoer bliver i formen 0000-00-00 00:00:00, altså f.eks. 2003-23-07 00:20:00.

Nu vil jeg godt have den udskrevet i til en side som er på engelsk, altså noget ala July 23 2003 - 00:20:00, eller hvordan man nu skriver det internationalt.

Jeg har arbejdet lidt selv på noget ala:

function clean_date($str) {
$array_month[0] = "-";
$array_month[1] = "January";
$array_month[2] = "February";
$array_month[3] = "March";
$array_month[4] = "April";
$array_month[5] = "May";
$array_month[6] = "June";
$array_month[7] = "July";
$array_month[8] = "August";
$array_month[9] = "September";
$array_month[10] = "Octobre";
$array_month[11] = "November";
$array_month[12] = "December";

$year = substr($str,0,4);
$month = substr($str,5,2);
$day = substr($str,8,2);
$time = substr($str,11,8);

$str = $array_month[$month] ." ". $day ." ". $year ." - ". $time;

return $str; }


men kan ikke rigtig få det til at fungere ordentligt... Hvis måneden bliver gemt som f.eks. 11, vil den godt skrive november, men derimod med 02 vil den ikke skrive february!

Og hvad skal egentlig skrives med stort i en international måde at skrive datoer på???
Avatar billede repsac Nybegynder
23. juli 2003 - 00:34 #1
Hvad med at gemme dit timestamp i epoch i stedet, og så selv formatere det vha. www.php.net/date ?
Avatar billede 7th Praktikant
23. juli 2003 - 00:39 #2
Jeg har lavet et lille eksempel. Jeg håber du fanger ideen, og det skulle ikke være noget større problem at få det til at spille med sql-udtræk.

$maaneder = array("January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December");
$dato = "2003-23-07";
list ($aar , $dag , $maaned) = split ("
  • " , $dato);

if ($maaned < 10)
{
$maaned = str_replace ("0" , "" , $maaned);
}

echo $maaneder[$maaned - 1]." $dag $aar";
Avatar billede 7th Praktikant
23. juli 2003 - 00:50 #3
Med sql-udtræk kunne det så komme til at se således ud...

$sel = mysql_query ("SELECT tabel_række_med_dato FROM din_tabel") or die (mysql_error());
$rsa = mysql_fetch_array ($sel);

$maaneder = array("January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December");
list ($aar , $dag , $maaned) = split ("
  • " , $rsa['tabel_række_med_dato']);

if ($maaned < 10)
{
$maaned = substr ($maaned , 1);
}

echo $maaneder[$maaned - 1]." $dag $aar";
Avatar billede brevkasserne Nybegynder
23. juli 2003 - 00:51 #4
Yes, det funger!!!
Takker!
Avatar billede detox Nybegynder
23. juli 2003 - 07:07 #5
Det var en noget besværlig måde at gøre det på, prøv i stedet:
SELECT DATE_FORMAT(tid, '%M %d %Y - %H:%i:%s') AS MyDate FROM tabel
Avatar billede brevkasserne Nybegynder
23. juli 2003 - 10:46 #6
hvordan skriver jeg den så ud?
Avatar billede detox Nybegynder
23. juli 2003 - 18:45 #7
$res = mysql_query("SELECT DATE_FORMAT(tid, '%M %d %Y - %H:%i:%s') AS MyDate FROM tabel") or die(mysql_error());
$row = mysql_fetch_array($res);
echo $row['MyDate'];
Avatar billede repsac Nybegynder
24. juli 2003 - 23:17 #8
Ich mener at 7th skal give de 15 point til detox -- han har den bedste løsning her i spørgsmålet!
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