Datum naar dagnaam

Door Wout van der Burg, 20 jaar geleden, 11.738x bekeken

Ik heb deze functie laatst gemaakt en vond het leuk om deze hier ook maar te posten :)
Deze functie genereert uit een NL-datestamp of een Internationale datestamp de volledige Nederlandse naam van de dag van deze betreffende dag.

Handig en makkelijk te bewerken voor vele doeleinden

Gesponsorde koppelingen

PHP script bestanden

  1. datum-naar-dagnaam

 

Er zijn 14 reacties op 'Datum naar dagnaam'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Wout van der Burg
Wout van der Burg
20 jaar geleden
 
0 +1 -0 -1
Gereserveerd voor TS
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
Heej Wout,

geinig scriptje, alleen even dit aanpassen op regel 42 om hem werkend te krijgen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    return $days[$day];

Grz. Johan.
Jelle Posthuma
Jelle Posthuma
20 jaar geleden
 
0 +1 -0 -1
Zou het ook handig kunnen zijn dat ie de complete datum terug geeft, incl. de volledige naam van de maand?
Als ik zo kijk, geef je alleen de dag terug.

Maar zou mooi zijn als je het zo output:

vrijdag 22 februari 2008

Verder vind ik het op zich wel een netjes en helder script.

(Kan PHPhulp niet een rating systeem erin bouwen op basis van een sterren rating zoals ik die gepost had, dat je ook de scripts kan sorteren op rating?)
Bo az
Bo az
20 jaar geleden
 
0 +1 -0 -1
Is dit niet zo iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
setlocale(LC_TIME, 'dutch');
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 02, 22, 2008));
// vrijdag 22 februari 2008
?>
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
Dus voor elke huidige dag krijg je dan dit neem ik aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
setlocale(LC_TIME, 'dutch');

# voor Wout:
echo strftime("%A", mktime(0, 0, 0, date("n"), date("j"), date("Y"))) . '<br>';

# voor Jelle:
echo strftime("%A %d %B %Y", mktime(0, 0, 0, date("n"), date("j"), date("Y")));
?>
Wout van der Burg
Wout van der Burg
20 jaar geleden
 
0 +1 -0 -1
@Johan1:
Aangepast :)

@Jelle Posthuma:
Er staat bij dat je hem heel makkelijk voor eigen output kan aanpassen..

@Boaz en Johan2:
Zo kan het inderdaad ook veel makkelijker, die functie kon ik nog niet.. :)
Maar is het dan niet zo dat dan de dag in het engels wordt geshowt?
M Ypma
M Ypma
20 jaar geleden
 
0 +1 -0 -1
@Wout
nee daarom gebruik je setlocale functie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
setlocale(LC_TIME, 'dutch');

?>
Lode
Lode
20 jaar geleden
 
0 +1 -0 -1
afhankelijk van platform is het toch:

setlocale(LC_TIME, 'NL_nl');
setlocale(LC_TIME. NLD_nld);

en je hebt ook nog een functie genaamd check_date();
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
We blijven het maar zeggen: rekenen met datum en tijd gaat veel gemakkelijker met je database. Die heeft daar veel meer functies voor. Als je bijv in MySQL deze query eerst uitvoert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    mysql_query ("SET lc_time_names = 'nl_NL'");
?>

dan krijg je keurige Nederlandse dag- en maandnamen als je DATE_FORMAT gebruikt. Bovendien heb je de beschikking over alle andere datum- en tijdfuncties van je DB.
Wout van der Burg
Wout van der Burg
20 jaar geleden
 
0 +1 -0 -1
Hmm ik krijg nu allemaal dingen te lezen die ik echt nog niet wist :)
Wel leuk =D
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
@Jan: Een database kan deze data inderdaad prima opleveren, maar het is maar de vraag of je dat wel wilt. Je laat de database dan de weergave van de data regelen en dat wil je in principe niet hebben. Een verandering van de weergave zul je dan ineens in je SQL moeten doorvoeren!

Het rekenen met datums is wat anders, dat heeft niks met de weergave te maken.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
@ pgFrank: de weergave van data doet de DB toch al, alleen standaard in het Engels. Dat in Nederlands veranderen lijkt mij geen bezwaar. De DB slaat de gegevens immers nog steeds hetzelfde op. Het rekenen verandert er (inderdaad) niet door, dus je behoudt alle functionaliteit op dat gebied.
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Quote:
@ pgFrank: de weergave van data doet de DB toch al, alleen standaard in het Engels. Dat in Nederlands veranderen lijkt mij geen bezwaar.

Nou, dat ben ik niet met je eens, 2008-02-22 is gewoon een ISO-standaard, dat kan ik met 1 functie simpel vertalen naar 22 februari 2008 of welk ander formaat dan ook. De input is altijd hetzelfde. Wanneer mijn database de ene keer een ander formaat aanlevert dan de andere keer, ben ik een hoop tijd kwijt met het maken van een functie die ieder willekeurig formaat netjes kan vertalen. De database ga je niet lastig vallen met presentatie. Presentatie zal je een rotzorg zijn in de database, die slaat data op en stelt deze beschikbaar aan de applicatie. Een database stelt geen informatie beschikbaar voor de eindgebruiker, een formaat in het nederlands is dus niet relevant.

Dit was ook de reden dat ik geen functies of queries in pgSQL op de plank had liggen voor de presentatie van datums, dit heb ik helemaal nooit nodig. Ik vraag een datum op in ISO-formaat en daarmee ben ik klaar. De presentatie laag gaat zich dan wel met het formaat bezig houden, dat is zijn probleem. 1 VIEW in de database is hierdoor ook bruikbaar voor meerdere vormen van presentatie: 1x als dag dd maand yyyy en 1x als popup-kalender voor het selecteren van een datum bij het updaten van een datum van een record. Zelfde gegevens, verschillende presentatie.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
@ pgFrank: strikt genomen heb je natuurlijk gelijk. Toch denk ik dat het handig om te weten dat MySQL niet per sé Engelse datums hoeft uit te spugen als je DATE_FORMAT gebruikt. Je point is taken ;-)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. datum-naar-dagnaam

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.