Data in Engels of Nederlands formaat
Zoals al aangegeven in het hoofdstuk over het uitlezen van de data uit de database, is het mogelijk om je data in een eigen formaat te zetten. Nu zijn er ook specifiers die de dag en maand als complete tekst weer kunnen geven.
Voorbeeld 20: Weergeven van de datum in het Engels.
Dit zal de datum weergeven als 'Tuesday July 10th 2007'. Natuurlijk kun je hier zelf nog mee spelen.
Voor het weergeven van de datum in het Nederlands, kun je proberen de local settings van de database te wijzigen. Deze setting is pas beschikbaar in versies 4.1.21, 5.0.25 en 5.1.12. Bij eerdere versies uit de 4.x, 5.0.x en 5.1.x series is dit dus geen optie. Kijk voor een alternatieve oplossing naar voorbeeld 22 of 23.
Voorbeeld 21: Weergeven van de datum in het Nederlands
Deze query gebruik je om de locale settings te wijzigen. Vervolgens worden de namen van dagen en maanden met DATE_FORMAT() nu in het nederlands weergegeven.
De weergave zou nu als volgt moeten zijn: 'dinsdag 10 juli 2007'. (Voor meer informatie over deze optie, zie de MySQL handleiding.)
Mocht het op deze manier niet lukken, dan zul je iets meer moeten doen. Er zijn dan twee oplossingen over. In de eerste wordt wel gebruik gemaakt van wat PHP maar wellicht is deze beter te begrijpen dan de tweede.
Voorbeeld 22: Weergeven van de datum in het Nederlands met PHP.
Code (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
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
<?php
// Arrays gebruikt voor het weergeven van Nederlandse namen
$weekdagen = array('zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag');
$maanden = array('januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');
// SQL query om benodigde gegevens uit de database te halen.
$sql = "
SELECT
DAYOFWEEK(datumveld) AS weekdag,
MONTH(datumveld) AS maand,
DAYOFMONTH(datumveld) AS dag
YEAR(datumveld) AS jaar
FROM
tabel
";
// Contorle of query gelukt is en eventueel foutafhandeling toepassen.
if(!$res = mysql_query($sql))
{
trigger_error(mysql_errno().': '.mysql_error());
}
else
{
// Fetchen van gegevens en combineren tot resultaat
$row = mysql_fetch_assoc($res);
$datum = $weekdagen[$row['weekdag']].' '.$row['dag'].' '.$maandag[$row['maand']].' '.$row['jaar'];
}
?>
// Arrays gebruikt voor het weergeven van Nederlandse namen
$weekdagen = array('zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag');
$maanden = array('januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');
// SQL query om benodigde gegevens uit de database te halen.
$sql = "
SELECT
DAYOFWEEK(datumveld) AS weekdag,
MONTH(datumveld) AS maand,
DAYOFMONTH(datumveld) AS dag
YEAR(datumveld) AS jaar
FROM
tabel
";
// Contorle of query gelukt is en eventueel foutafhandeling toepassen.
if(!$res = mysql_query($sql))
{
trigger_error(mysql_errno().': '.mysql_error());
}
else
{
// Fetchen van gegevens en combineren tot resultaat
$row = mysql_fetch_assoc($res);
$datum = $weekdagen[$row['weekdag']].' '.$row['dag'].' '.$maandag[$row['maand']].' '.$row['jaar'];
}
?>
Het formaat waarin de datum nu komt te staan is bijvoorbeeld: 'dinsdag 10 juli 2007'.
Maar het kan ook alleen met de database, en dat is eigenlijk waar deze hele tutorial wel om draait. Zo min mogelijk met PHP werken als het gaat om data en tijden.
Voorbeeld 23: Weergeven van de datum in het Nederlands met MySQL
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT CONCAT(
ELT(DAYOFWEEK(datumveld), 'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'),
' ',
DAYOFMONTH(datumveld),
' ',
ELT(MONTH(datumveld), 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'),
' ',
YEAR(datumveld)
) AS datum_NL
FROM tabel
ELT(DAYOFWEEK(datumveld), 'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'),
' ',
DAYOFMONTH(datumveld),
' ',
ELT(MONTH(datumveld), 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'),
' ',
YEAR(datumveld)
) AS datum_NL
FROM tabel
In deze query maken we gebruik van ELT() om de functie van de array’s uit de PHP code te vervangen en CONCAT() om alles aan elkaar te plakken. Eigenlijk werkt het precies hetzelfde en bovendien is het een stuk korter.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Datum- en tijdtypes
- Invoegen van data en tijden
- Uitlezen van data en tijden
- Functies voor het weergeven van specifieke info
- Rekenen met data en tijden
- Data in Engels of Nederlands formaat
- Slotwoord en referenties