Calcul dates du lundi au vendredi à partir du numéro de semaine en PHP

Une fonction très pratique nous est donnée dans les commentaires de la page PHP.net sur la fonction date à cette adresse: http://fr2.php.net/manual/fr/function.date.php qui permet de récupérer la date du début d'une semaine à partir du numéro de la semaine et de l'année.

(On ne le repère pas toujours aisément car elle est dans les commenatires.)

En modifiant un peu cette fonction on récupère très facilement les dates du lundi au vendredi à partir des numéros de semaine (et de l'année):

function get_lundi_vendredi_from_week($week,$year,$format="d/m/Y") {

$firstDayInYear=date("N",mktime(0,0,0,1,1,$year));
if ($firstDayInYear<5)
$shift=-($firstDayInYear-1)*86400;
else
$shift=(8-$firstDayInYear)*86400;
if ($week>1) $weekInSeconds=($week-1)*604800; else $weekInSeconds=0;
$timestamp=mktime(0,0,0,1,1,$year)+$weekInSeconds+$shift;
$timestamp_vendredi=mktime(0,0,0,1,5,$year)+$weekInSeconds+$shift;

return array("Lundi " . date($format,$timestamp),"Vendredi " . date($format,$timestamp_vendredi));

}

$debut_fin_semaine = get_lundi_vendredi_from_week(5, 2012);
echo $debut_fin_semaine[0] . " - " . $debut_fin_semaine [1];
//affichera Lundi 30/01/2012 - Vendredi 03/02/2012

 

Voilà! Il m'a paru utile de faire ce post car j'ai cherché pendant un moment avant de trouver cette fonction, et j'étais tombé sur différents articles dont les solutions ne marchaient pas.

 

Commentaires 4

Guest - Eric

le mardi 20 novembre 2012 18:50

Ca fonctionne très bien tel quel. Bravo et merci Raphaelle !

Ca fonctionne très bien tel quel. Bravo et merci Raphaelle ! :D

Guest - Today32

le jeudi 17 janvier 2013 15:17

Merci.

J'avais une fonction qui marchait bien pour 2012 mais incorrect pour 2013.
(strtotime("+$num_week weeks", $begin) et $offset = strtotime("last monday", $offset)

Merci. J'avais une fonction qui marchait bien pour 2012 mais incorrect pour 2013. (strtotime("+$num_week weeks", $begin) et $offset = strtotime("last monday", $offset);)

Guest - Falkao

le lundi 21 janvier 2013 09:27

Merci Raphaelle! C'est très utile en effet et c'est exactement ce que j'étais en train de chercher

Merci Raphaelle! C'est très utile en effet et c'est exactement ce que j'étais en train de chercher

Guest - camille

le mercredi 27 janvier 2016 16:43

Merci Raph ! :-)

Merci Raph ! :-)
Pas encore de commentaire
Already Registered? Login Here
Guest
jeudi 13 août 2020

Image Captcha

By accepting you will be accessing a service provided by a third-party external to https://www.pulsar-informatique.com/