Admin/Dev

25
Juil.
2020

Astuce PHP : Trouver un jour spécifiquement dans le mois

Publié par sky

PHP permet de manipuler les dates avec aisance, un vrai bonheur. Cependant calculer le second mardi du mois de Juillet 2020 peut s'avérer assez pénible. Saviez vous qu'il existe une fonction qui permet de calculer cela directement ?

Et oui, la fonction strtotime permet de retrouver des dates à partir de textes littéraux (en anglais), en retournant leur timestamp.

Et donc, retrouver ce fameux second mardi de Juillet 2020 est finalement assez simple :

$monJour = strtotime('second tuesday 2020-7');

Il est aussi possible de retrouver le dernier lundi d'Aout de la même année

$monJour = strtotime('last monday 2020-8');

Tout aussi pratique, la fonction peut vous retourner la date qu'il sera dans 2 semaines exactement.

$monJour = strtotime('+ 2 weeks');

ou encore la date qu'il sera dans 1 semaines 2 heures 7 minutes

$monJour = strtotime('+ 1 week 2 hours 7 minutes');

La fonction prend en charge pas mal de mots clés tels que tomorrow, yesterday, noon, midnight. Ainsi, pour récupérer le timestamp d'hier à minuit

$monJour = strtotime('yesterday midnight');

Ou encore faire des calculs plus compliqués, qui n'ont pas forcément de sens tels quels, mais qui peuvent être utiles en programmation

$monJour = strtotime('tomorrow noon + 7 hours - 147 minutes');

 

Cette méthode permet de rapidement retrouver les jours fériés d'autres pays. Si en France les jours fériés sont souvent à date fixe, dans le reste du monde, ce n'est que rarement le cas. Par exemple, pour trouver Thanksgiving aux USA ou au Canada, il faut récupérer respectivement le 3ème jeudi du mois de Novembre ou le second lundi d'Octobre.

Et pour Pâques ? Trouver Pâques est un peu plus compliqué, car il faut déterminer le premier dimanche suivant la première pleine lune suivant ou étant le premier jour du printemps. Rien que ça !

Mais cela reste parfaitement faisable, pour cela, il suffit de suivre un algorithme de Oudin, dont vous pouvez trouver une fonction PHP à cette adresse. Une fois le dimanche de Pâques connu, il est facile de trouver le Lundi qui le suit, ainsi que l'Ascension et la Pentecôte.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Captcha indisponible
Pour valider le formulaire, vous devez confirmer que vous êtes bien une personne. Actuellement, la fonctionnalité est indisponible. Vous devez activer le service ReCaptcha dans le gestionnaire des cookies, et donc consentir à l'utilisation de ses cookies.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
ReCaptcha  En savoir plus
Permet de valider que les visiteurs sont bien des humains lorsqu'ils valident des formulaires.
 
Tout accepter Tout refuser Gérer