Skip to content

Week number management🔗

Les gestions des dates ont toujours été compliquées. Voici une subtilité relative aux numéros de semaine et l'année qui la concerne.

La date prise pour les exemples est le 31/12/2019. C'est une date qui appartient à la première semaine de l'année suivante (2020).

alt first week of 2020

PHP🔗

En PHP, le plus courant pour récupérer l'année formatée est Y. Cependant, pour récupérer l'année correspondant à la semaine, il est plus adapté d'utiliser o

1
2
3
4
5
6
<?php
    $date = \DateTime::createFromFormat ('d/m/Y', '31/12/2019');

    var_dump($date->format('d/m/Y'));
    var_dump($date->format('W-Y')); // 01-2019
    var_dump($date->format('W-o')); // 01-2020

SQL🔗

En SQL on retrouve le même problème on peut récupérer l'année courante en utilisant Y. Alors que pour récupérer l'année de la semaine il faut utiliser x.

1
2
3
SELECT 
    DATE_FORMAT('2019-12-31', '%v-%x') as week_number_with_year_of_week,
    DATE_FORMAT('2019-12-31', '%v-%Y') as week_number_with_current_year

Result

alt result sql query

Subtilité supplémentaire en SQL on peut choisir de faire commancer la semaine le lundi (v) ou le dimanche (V).

Source🔗


Last update: December 20, 2024