Créer des dates facilement

La manière la plus simple pour créer des dates en PHP est d'instancier un objet de la classe DateTime.

$date = new DateTime();
// "2022-12-19 08:33:03.003983"

On peut aussi passer une chaîne comme paramètre à ce constructeur :

// La date et l'heure actuelle ("2022-12-19 08:33:03.003983")
// Valeur par défaut du constructeur
$date = new DateTime("now");

// Ce matin à minuit ("2022-12-19 00:00:00.000000")
$date = new DateTime("midnight");

// Minuit demain ("2022-12-20 00:00:00.000000")
$date = new DateTime("tomorrow");

// Dernier jour du mois ("2022-12-31 00:00:00.000000")
$date = new DateTime("last day of december");

A partir d'un format

On peut créer des dates aussi à partir d'un format que l'on définit.

// 2022-12-21 08:33:03.003983
$date = DateTime::createFromFormat('Y-m-d', '2022-12-21');

On voit ici, que les heures, minutes et secondes sont initialisées avec les valeurs de l'heure courante. Si on souhaite réinitialiser ces valeurs à 0, on peut utiliser !.

  • Une date à minuit ?
// 2022-12-19 00:00:00.000000
$date = DateTime::createFromFormat('!Y-m-d', '2022-12-19');
  • Mais ça marche aussi avec les jours, les mois et les années. Le premier jour du mois ?
// 2022-12-01 00:00:00.000000
$date = DateTime::createFromFormat('!Y-m', '2022-12');
  • Le premier jour de l'année ?
// 2022-01-01 00:00:00.000000
$date = DateTime::createFromFormat('!Y', '2022');
  • Le 1er janvier 1970 🙃?
// 1970-01-01 00:00:00.000000
$date = DateTime::createFromFormat('!', '');

Vous aimeriez progresser en PHP ? Mais vous ne savez pas comment vous y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.

Reçois dès maintenant un kata gratuit en cliquant sur le bouton ci-dessous.