Récupérer la date du premier jour de la semaine
Publié par Arnaud le 17 fév 2011 dans Développement
Un petit bout de code PHP, qui fait écho à une question qu’on m’a posée : comment récupérer la date du premier jour de la semaine ?
Très utile pour les scripts de calendrier, par exemple.
MAJ : Si votre serveur utilise une version >= PHP 5.1.0 vous pouvez utiliser la fonction suivante :
<?php echo date('l d F Y', mktime(0, 0, 0, date('m'), date('d')-date('N')+1, date('Y'))); // Affiche par exemple : monday 26 september 2011 ?>
Sinon, vous pouvez utiliser le bout de code ci-dessous mais attention; la fonction date(‘w’) retourne 0 pour le dimanche. Il faudrait améliorer un peu la ligne ci-dessous :
<?php echo date('l d F Y', mktime(0, 0, 0, date('m'), date('d')-date('w')+1, date('Y'))); // Affiche par exemple : monday 14 february 2011 ?>




Bonjour,
c’est curieux … en testant avec le dimanche 2 octobre 2011 comme date,
la fonction me donne le lundi 3 octobre comme premier jour de la semaine …
Alors que e premier jour de cette semaine est le lundi 26 septembre ….
Dommage ….
Salut,
En effet, c’est un bug que je n’avais pas remarqué car mon script n’utilise aucun week-end
La fonction date(‘w’) retourne le jour de la semaine au format numérique de 0 (pour dimanche) à 6 (pour samedi). Comme tu testes avec le dimanche, ça te retourne -0, tu fais +1 on est au lundi d’après.
Dans ce cas, on peut utiliser la fonction date(‘N’) qui retourne la représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0) de 1 (pour Lundi) à 7 (pour Dimanche).
Il faut juste modifier le code pour qu’il ressemble à ça :
< ?php
echo date('l d F Y', mktime(0, 0, 0, date('m'), date('d')-date('N')+1, date('Y')));
?>
Tu peux tester et me dire si ça fonctionne ?
Bonne journée
Ps : Je vais mettre à jour l’article du coup