Vraag & Antwoord

Webprogrammeren & scripting

[PHP] datum uit database in nederlandse notatie

5 antwoorden
  • Vanuit een database wil ik nieuwskoppen opvragen. Hierbij moet de datum worden getoond. Deze staat nog op engels. De maand is dus august en de dag wednesday. Ik wil hier de nederlandse namen voor gebruiken, maar ik weet niet hoe. De volgende code heb ik al, maar ik weet niet hoe ik verder moet: <?php $db = mysql_connect("***","***","***"); mysql_select_db("test", $db) or die ("FOUT: Het openen van de database is mislukt"); $resultaat = mysql_query("SELECT kop, date_format(datum, '%m %W %e %M %Y') FROM yolknieuws ORDER BY datum DESC LIMIT 15", $db); while (list($kop, $datum) = mysql_fetch_row($resultaat)){ echo("$datum | & $kop<br>\n"); } $maand[0] = ""; $maand[1] = "Januari"; $maand[2] = "Februari"; $maand[3] = "Maart"; $maand[4] = "April"; $maand[5] = "Mei"; $maand[6] = "Juni"; $maand[7] = "Juli"; $maand[8] = "Augustus"; $maand[9] = "September"; $maand[10] = "Oktober"; $maand[11] = "November"; $maand[12] = "December"; for($i=0; $i<=12; $i++){ echo("$maand[$i]<br>"); } ?> De uitvoer van deze code staat op http://81.59.96.207/test_db.php Wie heeft er een oplossing?
  • Waarschijnlijk is het handiger om de datum niet via date_format() in de query op te vragen, je maakt het jezelf nu vrij moeilijk. Beter is in dit geval om de datum als Unix Timestamp op te vragen zodat je deze direct kunt voeren aan [url=http://nl.php.net/date]date()[/url]. Hoe je je SQL moet aanpassen weet ik niet, zal ff kijken of ik het kan vinden. - Bas
  • Ik weet er niet al te veel vanaf, maar is dat met YEAR(), MONTH(), DAYOFMONTH() en DAYOFWEEK()? Of is dat niet wat je bedoelde?
  • Allereerst verander je de query:[code:1:79db5aa271]$sql = "SELECT kop, UNIX_TIMESTAMP(datum) FROM yolknieuws ORDER BY datum DESC LIMIT 15;"; $resultaat = mysql_query($sql);[/code:1:79db5aa271]Vervolgens ga je nu de variabelen op een andere manier bewerken. Om het geheel soepel te laten werken plaats je de volgende arrays vóórdat je de datum gaat bewerken:[code:1:79db5aa271]$maanden = array("","januari","februari","maart", "april","mei","juni", "juli","augustus","september", "oktober ,"november","december"); $dagen = array("zondag","maandag","dinsdag","woensdag", "donderdag","vrijdag","zaterdag");[/code:1:79db5aa271]Vervolgens kan je heel simpel de datum weergeven met:[code:1:79db5aa271]$space = " "; while (list($kop, $datum) = mysql_fetch_row($resultaat)){ echo $dagen[date("w",$datum)], $space, date("j",$datum), $space, $maanden[date("n",$datum)], $space, date("Y",$datum), " | ", $kop, "<br>\n"); }[/code:1:79db5aa271]Het lijkt wat omslachtig (en dat is het ook) maar de Nederlandse taal zit nou eenmaal niet in PHP gecompileerd en dus doen we het zo. - Bas [b:79db5aa271]Edit:[/b:79db5aa271] ik ben niet zo thuis in MySQL, maar met die functies zou je alles idd nog wat korter kunnen maken. Het gebruik van date() wordt dan overbodig maar je query wordt wat langer.
  • Eindelijk!!! Ik heb al in meerdere forums dezelfde vraag gesteld, maar niemand kon een werkend antwoord geven. Dit keer gelukkig wel. Bedankt Bas. Hij werkt prima!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.