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('!', '');

Cet article t'a plu ? Si oui, je te propose de t'inscrire à ma dev letter pour recevoir régulièrement dans ta boîte mail mes conseils, mes nouveaux articles, des vidéos à voir, des outils à découvrir et encore bien d’autres choses.

Je m'inscris