Toon posts:

[MYSQL]Nederlandse dagaanduiding

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hey,

Ik heb een probleem ik wil een datum weergeven met daarvoor de juiste dag van de week (vb Maandag), maar ik krijg deze enkel tevoorschijn in het engels kan iemand mij vertellen hoe ik dit in het Nederlands krijg??

SELECT DATE_FORMAT(datum,'%W %d-%m-%Y')as datum FROM kalender;

alvast bedankt

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 12-02 10:41

chem

Reist de wereld rond

dat kan niet.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
en waarom niet??
Het is voor in een PHP scriptje

Moet ik dan elke waarde opvangen?

[ Voor 68% gewijzigd door Verwijderd op 31-07-2006 21:20 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

De datum ophalen en in PHP met strftime() formatteren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Het werkt nog steeds niet ik doe nu dit:


setlocale(LC_TIME, "nl_NL");

Select DATE_FORMAT(datum,'%d-%m-%Y')as datum1 FROM kalender

echo 'strftime("%A",$rij['datum1'])';


hij geeft nog steeds engelse benaming en een dag te vroeg weer?

  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 04-02 08:39

DDemolition

slopen is mijn lust en leven

met date("w") even dag van de week aanroepen

w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)

PHP:
1
2
3
4
function GetNLDay($sInternDays) {
$aNLDays = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
return $aNLDays($sInternDays);
}

Specs: Server, WS boven, WS beneden


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:21

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op maandag 31 juli 2006 @ 21:33:
Het werkt nog steeds niet ik doe nu dit:


setlocale(LC_TIME, "nl_NL");

Select DATE_FORMAT(datum,'%d-%m-%Y')as datum1 FROM kalender

echo 'strftime("%A",$rij['datum1'])';


hij geeft nog steeds engelse benaming en een dag te vroeg weer?
setLocale past de locale van php aan. NIET mysql. De datumfuncties van php zullen (mits geinstalleerd) dan de nederlandse namen terug geven, NIET de mysql functies.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Ok ik heb zelf opgelost

heb engelse afkortingen afgehaald en door switch laten lopen

dit werkt perfect de rest zal ik later eens proberen.

mag gesloten worden

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
DDemolition schreef op maandag 31 juli 2006 @ 21:58:
met date("w") even dag van de week aanroepen

w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)

PHP:
1
2
3
4
function GetNLDay($sInternDays) {
$aNLDays = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
return $aNLDays($sInternDays);
}
Uhm, doe dit maar:

PHP:
1
return $aNLDays[$sInternDays];


Anders krijg je parse errors enzo ;).

  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 04-02 08:39

DDemolition

slopen is mijn lust en leven

mcdronkz schreef op maandag 31 juli 2006 @ 22:05:
[...]


Uhm, doe dit maar:

PHP:
1
return $aNLDays[$sInternDays];


Anders krijg je parse errors enzo ;).
;) was snel even recht in de berichtenbox. Normaal typ ik het even in DW en zie ik zoiets meteen :+

Specs: Server, WS boven, WS beneden


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Hrm? MySQL doet niet aan i18n? (Uiteraard zal dat niet vanuit php in te stellen zijn, maar zou toch vreemd zijn.)

All my posts are provided as-is. They come with NO WARRANTY at all.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Verwijderd schreef op maandag 31 juli 2006 @ 21:33:
Het werkt nog steeds niet ik doe nu dit:


setlocale(LC_TIME, "nl_NL");

Select DATE_FORMAT(datum,'%d-%m-%Y')as datum1 FROM kalender

echo 'strftime("%A",$rij['datum1'])';


hij geeft nog steeds engelse benaming en een dag te vroeg weer?
Bovenstaande zou moeten werken, maar daar zitten een paar maar's aan. Allereerst: de locale moet geïnstalleerd staan op je server. Verder is nl_NL de Linux-manier om een locale te selecteren, op een Windows-server is het nld_nld meen ik. Daarnaast is de DATE_FORMAT in je query niet per se nodig als het een datumveld is, en bovendien moet je de strftime-functie niet tussen quotes zetten in je echo, al neem ik aan dat dat hier een tikfout is. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • AW_Bos
  • Registratie: April 2002
  • Nu online

AW_Bos

Liefhebber van nostalgie... 🕰️

Kan wel volgens mij. Ik ben zelf niet zo heel erg bekend met de datum functies van MySQL, maar ik heb een query gezien met statements waarin het als het ware vertaald werd.
Is ook enige tijd terug dat ik het zag...

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Verwijderd

AW_Bos schreef op maandag 31 juli 2006 @ 22:57:
[...]

Kan wel volgens mij. Ik ben zelf niet zo heel erg bekend met de datum functies van MySQL, maar ik heb een query gezien met statements waarin het als het ware vertaald werd.
Is ook enige tijd terug dat ik het zag...
Je kunt het met een case doen: http://dev.mysql.com/doc/...ntrol-flow-functions.html

Verwijderd

Een functie die ik in m'n database class gebruik voor het 'vertallen/omzetten' van data in het Nederlands.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
    function formatDate( $sDateFormat, $sDateField, $sLanguage = '' )
    {
        #Initialse the array with date formats
        $aDate = array();
        #Day of the month, numeric (00..31)
        $aDate['d'] = 'DATE_FORMAT(' . $sDateField . ", '%d')";
        #Day of the month, numeric (0..31)
        $aDate['e'] = 'DATE_FORMAT(' . $sDateField . ", '%e')";
        #Month, numeric (00..12)
        $aDate['m'] = 'DATE_FORMAT(' . $sDateField . ", '%m')";
        #Month, numeric (0..12)
        $aDate['c'] = 'DATE_FORMAT(' . $sDateField . ", '%c')";
        #Year, numeric four digits (1999)
        $aDate['Y'] = 'DATE_FORMAT(' . $sDateField . ", '%Y')";
        #Year, numeric two digits (99)
        $aDate['y'] = 'DATE_FORMAT(' . $sDateField . ", '%y')";
        #Hour (00..23)
        $aDate['H'] = 'DATE_FORMAT(' . $sDateField . ", '%H')";
        #Minutes (00..59)
        $aDate['i'] = 'DATE_FORMAT(' . $sDateField . ", '%i')";
        #Seconds (00..59)
        $aDate['s'] = 'DATE_FORMAT(' . $sDateField . ", '%S')";
        #Day of the year (001..366)
        $aDate['j'] = 'DATE_FORMAT(' . $sDateField . ", '%j')";
        #Day of the week(0=Sunday, 6=saterday)
        $aDate['w'] = 'DATE_FORMAT(' . $sDateField . ", '%w')";
        
        $aDate['%'] = '%%';
    
        #Define the language dependent date formats
        #$aDate['a'] = Abbreviated weekday name (Sun..Sat)
        #$aDate['M'] = Abbreviated month name (Jan..Dec)
        #$aDate['W'] = Weekday name (Sunday..Saterday)
        #$aDate['b'] = Mont name (January..December)
        
        switch ($sLanguage)
        {
            case 'nl':
                $aDate['a'] = 'ELT((WEEKDAY(' . $sDateField . ")+1), 'ma','di','wo','do','vr','za','zo')";
                $aDate['M'] = 'ELT(MONTH(' .    $sDateField . "), 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december')";
                $aDate['W'] = 'ELT((WEEKDAY(' . $sDateField . ")+1), 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag')";
                $aDate['b'] = 'ELT(MONTH(' .    $sDateField . "), 'jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec')";
                break;
            default:
                $aDate['a'] = 'DATE_FORMAT(' . $sDateField . ", '%a')";
                $aDate['M'] = 'DATE_FORMAT(' . $sDateField . ", '%M')";
                $aDate['W'] = 'DATE_FORMAT(' . $sDateField . ", '%W')";
                $aDate['b'] = 'DATE_FORMAT(' . $sDateField . ", '%b')";
                break;
        }
        
        $aReturn = array();
        $iFormatLength = strlen( $sDateFormat );
        for( $i = 0; $i < $iFormatLength; $i++ )
        {
            #Replace arguments per char
            $sChar = substr( $sDateFormat, $i, 1 );
            if( array_key_exists( $sChar, $aDate ) )
            {
                $aReturn[] = $aDate[$sChar];
            } else {
                $aReturn[] = "'" . $sChar . "'";
            }
        }
        
        return 'CONCAT(' . implode( ',', $aReturn ) . ')'; 
    }


En dan aanroepen met :
PHP:
1
2
3
4
5
6
$sQuery = "
SELECT
       " . formatDate( 'd-m-Y H:i:s', 'datumkolom', 'nl' ) . " AS dateNL, 
FROM
    tabel
etc ";

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
PHP:
1
2
3
4
5
6
7
8
$sql = 'SELECT UNIX_TIMESTAMP(datum) AS datum_ts FROM kalender';
$datum_ts = $db->getOne($sql);

echo date('l j F, Y', $datum_ts);

setlocale(LC_TIME, "nl_NL");

echo date('l j F, Y', $datum_ts);
Pagina: 1