Administrateur Systèmes d'Information mais aussi Développeur Web.
Passionné par plein de choses :)

Arnaud Bosquet

Administrateur Systèmes d'Information / Dev Web / Tennis

Récupérer la date du premier jour de la semaine

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
?>

4 commentaires

zerOmhz
27 Sep 2011 à 11:14

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 …. :-(

Arnaud
28 Sep 2011 à 8:05

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 :)

ikoreantv.com
7 Nov 2016 à 2:00

Mania, The Better Mom Monday, Homestead Barn Hop, Morristribe Homestead, Creative Mondays, Inspire Me Mondays, Melt in Your Mouth Monday, My Meatless Mondays, Makin’ You Crave Monday, Meatless Monday,

kindes
8 Août 2017 à 19:27

Je déteste le tutos sans commentaire … Et si vous prenez le temps de nous expliquer votre bout de code ? Je ne peux pas l’adapter si je ne comprends pas comment ça fonctionne

Répondre