stian_credins Skrevet 11. april 2012 Del Skrevet 11. april 2012 (endret) Hallo. Har litt problemere med å INSERT INTO mysql med norsk dato som i dag-måned-år. Jeg er veldig ny til php, men har et skript som fungerer bra, men jeg får den kun til å echo f.eks. 2012 May 18. $title = $_POST['title']; $text1 = $_POST['text1']; $dato = $_POST['dato']; $result = mysql_query("INSERT INTO blog_posts (title, post, dato) VALUES ('$title','$text1','$dato')",$connect); TIL: $result = mysql_query("SELECT *, DATE_FORMAT(DATO, '%Y %b %d') as dato FROM blog_posts WHERE dato &--#62; NOW() ORDER BY dato",$connect); echo $myrow['dato'] echo $myrow['title'] echo $myrow['post'] osv......... Med %Y &b &d så klarer den å lese det, men hvis jeg setter %d %b %Y så blir det bare rotete og ingen system av en eller annen grunn.. Noen ideer? Pluss oversett måneder. June = Juni osv Takk! Endret 11. april 2012 av stian_credins Lenke til kommentar
Tom_ Skrevet 13. april 2012 Del Skrevet 13. april 2012 Det er ganske enkelt hvis du har lagret tiden som en unix timestamp i databasen. http://www.php.net/manual/en/function.date.php Lenke til kommentar
Crowly Skrevet 13. april 2012 Del Skrevet 13. april 2012 Du må bruke STR_TO_DATE() når du lagrer dato, gitt at feltet er DATE eller DATETIME. Da kan du formatere den akkurat som du vil med DATE_FORMAT() i en SELECT <?php // regner med at dato formatet er dd.mm.åååå // i sprintf så er % escape string, så %% = % $sql=sprintf("INSERT INTO blog_posts (title, post, dato) VALUES ('%s','%s',STR_TO_DATE('%s','%%d.%%m.%%Y'))", mysql_real_escape_string($_POST['title']), mysql_real_escape_string($_POST['text1']), mysql_real_escape_string($_POST['dato'])); mysql_query($sql); ?> For å oversette så bruker jeg en funksjon som dette, og en tilsvarende funksjon for måneder. <?php function oversett_dag($dag) { $dager = array('mon' => 'man', 'monday' => 'mandag', 'tue' => 'tir', 'tuesday' => 'tirsdag', 'wed' => 'ons', 'wednesday' => 'onsdag', 'thu' => 'tor', 'thusday' => 'torsdag', 'fri' => 'fre', 'friday' => 'fredag', 'sat' => 'lør', 'saturday' => 'lørdag', 'sun' => 'søn', 'sunday' => 'søndag'); return $dager[strtolower($dag)]; } ?> Kan være at du bør dele opp dato i SELECTEN, slik at dag og måned blir egne felt, og så sette dem sammen i echo <?php $sql="SELECT DATE_FORMAT(dato,'%a') ukedag, DATE_FORMAT(dato,'%d') dag, DATE_FORMAT(dato,'%b') mnd, DATE_FORMAT(dato,'%Y') aar FROM ...."; // kjør sql og slikt her echo oversett_dag($row['ukedag']). ' ' . $row['dag'] . '-' . oversett_mnd($row['mnd']) . '-' . $row['aar']; ?> Lenke til kommentar
stian_credins Skrevet 14. april 2012 Forfatter Del Skrevet 14. april 2012 Herlig! Takker uendelig for svaret Crowly Ha et godt liv Lenke til kommentar
Yawa Skrevet 28. april 2012 Del Skrevet 28. april 2012 (endret) du kan lett sette denne lille PHP saken helt i toppen av nettstedet ditt: &--#60;?php setlocale(LC_ALL,'no_NO'); // "no_NO" for Norsk, les mer her : http://php.net/manual/en/function.setlocale.php ?&--#62; Denne lille saken sørger ganske enkelt for at all php-genererte datoer vises på norsk Du kan teste med å lage et slikt dokument : (set_locale.php) &--#60;?php setlocale(LC_ALL,'no_NO'); print strftime('%A %d. %B %Y kl. %T'); ?&--#62; u/ set_locale() = Saturday 28. April 2012 kl. 03:02:34 m/ set_locale() = lørdag 28. april 2012 kl. 03:04:15 [EDIT] : Passe trøtt her, så leste ikke veldig godt etter... beklager, men så kjapp igjennom og la merke til Crowly sin omskriving av dagene fra EN til NO... Min greie var for å få ut dato på norsk vis... heh... Endret 28. april 2012 av Yawa Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå