Manipuler les dates avec PHP

Les dates sont une chose courante a manipuler en PHP. PHP a de nombreuses fonctions intégrées pour gérer les dates. La fonction la plus couramment utilisée est la fonction date(). Cette fonction vous permet de formater un horodatage comme vous le souhaitez. D’autres fonctions vous permettent de manipuler les dates de différentes manières. Vous pouvez ajouter ou soustraire des jours, des mois, des années, etc. Nous allons voir dans cet article comment manipuler les dates avec PHP !

Fonction date en PHP

La fonction PHP date() ne reçoit qu’un seul paramètre : le format de la date. Par défaut, il affichera toujours la date du moment actuel d’exécution, comme le montre le code ci-dessous :

echo date("d/m/Y");
// 20/06/2022

Fonction time

La fonction PHP time() retourne un nombre quelconque de secondes depuis l’ère UNIX, qui est le 1er janvier 1970 00:00:00, jusqu’à l’heure d’exécution actuelle. Ce nombre est également appelé timestamp UNIX. Pour utiliser la fonction, il suffit de la déclarer comme indiqué dans l’exemple ci-dessous :

$nextWeek = time() + (7 * 24 * 60 * 60);
echo 'Now: '. date('d-m-Y') ."
";
echo 'Next Week: '. date('d-m-Y', $nextWeek) ."
";
echo 'Next Week: '. date('d-m-Y', strtotime('+1 week')) ."
";
// Now: 04-07-2022 à la date actuelle
// Next Week: 11-07-2022 à une semaine après la date actuelle
// Next Week: 11-07-2022 à une semaine après la date actuelle en utilisant strtotime

En utilisant time(), nous pouvons, par exemple, présenter dans notre système la date actuelle pour l’utilisateur, ainsi que la date de la semaine prochaine et la date d’exécution de l’exemple présenté.

Fonction strtotime

La fonction strtotime() prend en paramètre une chaîne de format de date en anglais et tente d’analyser ce format. C’est comme si l’on essayait de transformer une phrase qui contient des informations possibles sur la date en une date réelle, comme le montre le code suivant :

echo 'Next Month: '. date('d-m-Y', strtotime('+1 month')) ."
";
// Next Month: 04-08-2022

La fonction date() apporte la date actuelle d’exécution. En utilisant la fonction strtotime() et en ajoutant +1 mois, elle interprétera que la fonction doit retourner la date d’exécution plus un mois.

Fonction mktime

La fonction mktime() prend l’heure, la minute, la seconde, le mois, le jour et l’année comme paramètres, comme indiqué dans l’exemple ci-dessous :

$data = mktime(02,30,00,04,30,1995);
// Pour afficher 30-04-1995
echo date("d-m-Y", $data)."
";

// Pour afficher 30-04-1995 02:30
echo date("d-m-Y H:i", $data)."
";

// Pour afficher 1995
echo date("Y", $data)."
";

Fonction DateTime

La fonction DateTime de PHP vous permet de travailler avec la date et l’heure comme s’il s’agissait d’objets qui peuvent être facilement manipulés par différentes méthodes, ce qui facilite la création de règles commerciales basées sur les dates, ainsi que la conversion et la manipulation de différents formats. La création d’un objet de la classe DateTime est le moyen le plus simple de manipuler les dates dans votre application. Voir l’exemple ci-dessous :

<?php $actuelle = new DateTime(); $specifie = new DateTime(' 1990-01-22'); $texte = new DateTime(' +1 month'); print_r($actuelle); print_r($specifie); print_r($texte); /* DateTime Object ( [date] => 2022-06-20 19:01:43 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 1990-01-22 00:00:00 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 2022-07-20 19:01:43 [timezone_type] => 3 [timezone] => UTC )
*/

Vous voyez que $actuelle est un nouvel objet de la classe DateTime et, comme aucun paramètre n’est spécifié, il reçoit la date et l’heure actuelles de l’exécution. D’autre part, $specifie reçoit également l’objet, sauf qu’il est spécifié la date qui sera affichée, tandis que $texte reçoit le même objet, mais un mois avant la date d’exécution actuelle.

Une fois l’objet DateTime instancié, nous pouvons le transformer en une chaîne de caractères à l’aide de la méthode format(). Cette méthode nous permet de spécifier un modèle, comme l’exemple ci-dessous :

 $data = new DateTime('+1 month');
echo $data->format('d-m-Y H:i:s');

// 20-06-2022 19:47:27
// 20-07-2022 19:47:27

Nous avons fait la même chose que dans l’exemple précédent’, sauf que maintenant, avec le « -> », nous accédons à la méthode format et définissons que le format de notre date et heure sera Jour, Mois, Année, Heure, Min et Sec.

Nous pouvons également modifier la date de l’objet créé par la classe DataTime en utilisant la méthode modify(), comme dans l’exemple suivant :

 echo $data->format('d-m-Y H:i:s');

// 22-02-1990 00:00:00

Nous créons dans $data un objet de la classe DateTime et passons une date. Avec le « -> », nous indiquons à la méthode modify d’ajouter un mois et lorsque nous faisons echo, la date est affichée avec un mois ajouté à la date que nous avions déjà définie.

Laisser un commentaire