Gå til innhold

Hjelp til "replacing" av et dato-format.


Anbefalte innlegg

Heisann,

 

Trenger litt hjelp med lite problem jeg har her . Er nybegynner så mine kunnskaper om php/mysql er minimale.

 

Jeg vil har en dato som alltid ser slik ut: 2003-05-08 (altså 0000-00-00) det er defaulten av curdate() funksjonen i mysql.

 

Jeg vil helst få datoen til å vises i dette formatet : 08.05.2003.

-'ene kan jeg replace ved hjelp av str_replace(), men selve datoen er litt verre. Mistenker det for å være et godt sted å bruke pattern replace, preg_replace() ellerno liknende, men syntaksen er alltfor vanskelig for meg å forstå.

 

Har kikket på http://www.php.net/manual/en/function.preg-replace.php men ble ikke noe smartere av den grunn ;)

 

Kikket på denne :

 

<?php

$string = "April 15, 2003";

$pattern = "/(w+) (d+), (d+)/i";

$replacement = "${1}1,$3";

print preg_replace($pattern, $replacement, $string);



/* Output

  ======



April1,2003



*/

?>

 

Har store problemer med å fatte noe som helst av hvordan $pattern og $replacement variablene fungerer i dette eksempelet.

 

 

På forhånd takk ;)

Lenke til kommentar
Videoannonse
Annonse
Vel.. select DATE_FORMAT (Dato, "%d.%m.%Y") as fDato from Test vil kanskje funke? Denne vil vel hente alle datoene som er registrert.

 

SQL-spørring :

 

select DATE_FORMAT (Dato, "%d.%m.%Y") as fDato from Test LIMIT 0, 30

 

MySQL sa:

 

 

You have an error in your SQL syntax near '(Dato, "%d.%m.%Y") as fDato from Test LIMIT 0, 30' at line 1

Lenke til kommentar


$db = mysql_connect("hostname","username","passwd");

mysql_select_db("hjalla",$db);



$dato = mysql_query("SELECT unix_timestamp(Dato) FROM Test where ID = '1' ", $db);





while($row = mysql_fetch_row($dato)) {



 setlocale(LC_TIME, "no_NO");

 $convert_date = strftime("%A %e. %B %Y Klokken: %H:%M",$row[0]);



 $convert_date = ucwords($convert_date);





echo $convert_date;

}

 

Denne gir output format:Mandag 5. Mai 2003 Klokken: 02:48 feks.

Lenke til kommentar

Det funker da som bare det her. Hva for versjon MySQL er det du har? Kanskje det er noe rart der.

 

Kanskje du ikke kan ha mellomrom på DATE_FORMAT og første parantesen.

At det burde være DATE_FORMAT(Dato...

 

Jeg har jo laget identisk tabell som du har og jeg har ikke problemer :D

Lenke til kommentar
Det funker da som bare det her. Hva for versjon MySQL er det du har? Kanskje det er noe rart der.

 

Kanskje du ikke kan ha mellomrom på DATE_FORMAT og første parantesen.

At det burde være DATE_FORMAT(Dato...

 

Jeg har jo laget identisk tabell som du har og jeg har ikke problemer :D

 

MySQL 3.23.42

 

Men funka strålende uten mellomrom mellom DATE_FORMAT og parantesen ;)

Lenke til kommentar

Funka greit begge løsningene. Det passer meg utmerket egentlig siden jeg prøver å lære meg php og mysql, nå vet jeg hvordan jeg skal gjøre det i sql og hvordan gjøre det i php ;)

Neste tabell skal nok dateres med Timestamp tenker jeg ;)

 

Takk for hjelpa alle sammen ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...