Avatar billede gulvflaesk Nybegynder
14. februar 2011 - 02:21 Der er 4 kommentarer og
1 løsning

Nyhedssystem og problem med dato i databasen

Hej Eksperter,

Jeg har et problem med et lille nyhedssystem. Datoen i MySQL vil kun god tage 0000-00-00 og ikke dansk format 00-00-0000. Kan det lade sig gøre at få den til at "snakke" dansk, eller kan man gøre noget andet?

Koden ser således ud:

$overskrift = ($_POST[overskrift]);
$nyhedsHTML = ($_POST[nyhedsHTML]);
$beskrivelse = ($_POST[beskrivelse]);
$dato = date('Y-m-d');

mysql_query("INSERT INTO nyheder (overskrift, nyhedsHTML, beskrivelse, dato) VALUES ('".$overskrift."','".$nyhedsHTML."','".$beskrivelse."','".$dato."')");

Når jeg poster det omvendt (d-m-Y), bliver indholdet blot "0000-00-00" i databasen.

Håber nogen kan hjælpe mig videre :-)
Avatar billede showsource Seniormester
14. februar 2011 - 06:51 #1
Du gør det helt rigtige lige nu.
Det vil være helt fjollet at gemme i et format som IKKE er sql standard.

Der findes en masse forskellige funktioner til at få det ønskede format når du henter fra db.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
14. februar 2011 - 07:12 #2
showsource kom foerst mens jeg var ved at lave et mere konkret eksempel.  Her kommer det alligevel:

Det er vel stort set ligegyldigt hvad der gemmes i databasen hvor du ikke kan se det.  Hvad det vel drejer sig om er at traekke det ud paa den maade du skal bruge det.  Hvis du vil se datoer 'paa dansk,' for eksempel udskrive:

Nyhed nummer 1: Ny gulvspand 13-02-2011
Nyhed nummer 2: Sam er doed 12-02-2011

kan du faa det ved at bruge mysql function date_format saaledes:

$result = mysql_query("SELECT overskrift, date_format(dato, '%d-%m-%Y') as dato from gulvflaesk") or die(mysql_error());
while($row = mysql_fetch_array($result))
{
  $overskrift = $row['overskrift'];
  $dato = $row['dato'];
  echo "Nyhed: $overskrift: dato $dato <br>";
}
Avatar billede The_Buzz Novice
14. februar 2011 - 08:28 #3
Avatar billede gulvflaesk Nybegynder
14. februar 2011 - 09:32 #4
Tusinde tak for jeres svar! De hjalp mig meget!

Jeg valgte at hente det ud på den måde Christian Belgien foreslog:

$result = mysql_query("SELECT overskrift, date_format(dato, '%d-%m-%Y') as dato from gulvflaesk") or die(mysql_error());
while($row = mysql_fetch_array($result))
{
  $overskrift = $row['overskrift'];
  $dato = $row['dato'];
  echo "Nyhed: $overskrift: dato $dato <br>";
}

Hvis nogen vil have point, så giv endelig lyd :-)

Igen tusinde tak!
14. februar 2011 - 10:00 #5
Godt det virkede.  Svar fra mig.
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