Comment convertir une chaîne de caractères en date et en heure en PHP

Ralfh Bryan Perez 22 janvier 2022
  1. Combinaison de strtotime() et de date
  2. Utiliser DateTime::createFromFormat ou date_create_from_format
Comment convertir une chaîne de caractères en date et en heure en PHP

Pour convertir une chaîne en Date et DateTime, plusieurs fonctions ou méthodes peuvent être utilisées, comme la combinaison de strtotime() et date(), en utilisant la méthode de la classe DateTime::createFromFormat ou la méthode format() dans la même classe, ou la fonction PHP intégrée de date_create_from_format.

Combinaison de strtotime() et de date

La fonction strtotime() retourne le nombre de secondes écoulées depuis le 1er janvier 1970, tout comme l’horodatage d’une machine Linux. Elle retourne le nombre total de secondes du paramètre fourni passé à la fonction.

Paramètres:

  • Time/Date (obligatoire) - Ce paramètre spécifie la date/heure avec un format de chaîne de caractères.
  • Now (facultatif) - Ce paramètre est l’horodatage qui peut être utilisé comme base pour le calcul des dates relatives

La fonction date() est celle qui formate la date et l’heure locales, et retourne une nouvelle chaîne de date formatée.

Paramètres:

  • format (obligatoire) - Ce paramètre spécifie le format de la chaîne fournie.
  • timestamp (facultatif) - Ce paramètre est un timestamp UNIX entier et la valeur par défaut est l’heure locale actuelle.

Pour utiliser correctement à la fois strtotime()() et date(), utilisez strtotime() pour la première date et ensuite utilisez date() pour la reconvertir.

Exemple:

$oldDate = strtotime('03/08/2020');

$newDate = date('Y-m-d',$time);

echo $newDate;
//output: 2020-03-08

Note: Il y a une énorme différence entre / et - lorsque l’on utilise comme séparateur pour le formatage d’une date, si le séparateur est un / alors le format américain m/d/y est supposé ; et si le séparateur est un -, alors le format européen d-m-y est supposé. Pour éviter toute ambiguïté, il est recommandé d’utiliser les dates ISO 8601 (YYYY-MM-DD).

Utiliser DateTime::createFromFormat ou date_create_from_format

La fonction DateTime::createFromFormat est une fonction PHP intégrée qui retourne un nouvel objet DateTime qui représente le format de la date et de l’heure. D’autre part, date_create_from_format est un style procédural qui utilise le DateTime::createFromFormat.

Parameters:

  • Format (obligatoire) - Ce paramètre spécifie le format à utiliser.
  • Time (obligatoire) - Ce paramètre représente la chaîne de date/heure. Si ce paramètre est NULL, alors il utilisera la date/heure actuelle.
  • Timezone (facultatif) - Le fuseau horaire de l’heure. La valeur par défaut est le fuseau horaire actuel.

Exemple de DateTime::createFromFormat.

echo $dateNew = DateTime::createFromFormat('m-d-Y', '03-08-2020')->format('Y/m/d');
//output: 2020/03/08

Exemple de date_create_from_format.

echo $dateNew = date_create_from_format("m-d-Y", "03-08-2020")->format("Y-m-d");
//output: 2020/03/08

La seule différence entre date_create_from_format et DateTime::createFromFormat est que le DateTime::createFromFormat n’est pas disponible en PHP 5.2 et inférieur.

Article connexe - PHP Date

Article connexe - PHP String