Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] datum uit database in nederlandse notatie

Anoniem
None
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>
    ");
    }

    $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 date(). 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>
    ");
    }[/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

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