Savoir utiliser les fonctions de dates en PHP

 
 

Les dates ce sont des éléments qu’un développeur PHP aura le plus souvent à gérer – comme d’autres composantes. Connaître les fonctions de date et savoir les utiliser est donc primordial.

La base du traitement des dates

Avant d’aller plus en avant dans les fonctions et leur utilité, nous allons voir quelques concepts à retenir sur les dates.

Premièrement les dates sont affichées sous la forme de string (comprenez chaînes de caractères) et respectent ce qu’on appelle un format. Ce format est fortement fonction du pays où vous vous trouvez. Par exemple en France on a pour habitude de lire des dates au format DD/MM/YY (ex : 31/01/15) alors qu’aux États-Unis la norme est plutôt MM/DD/YY (ex : 01/31/15). Il est important de garder cela en tête lorsqu’on va manipuler des dates en PHP.

Deuxièmement, chose moins visible pour les internautes, les dates reposent sur ce qu’on appelle le timestamp. Il s’agit d’un nombre ayant une taille conséquente et représentant le nombre de secondes écoulées depuis le 01/01/1970. Par exemple 01/05/2014 à 10h23 et 10 secondes équivaut à 1398932590 là où le 02/01/1970 à la même heure équivalait à 120190.

En PHP on peut ainsi passer d’une date à un timestamp et d’un timestamp à une date sans problème.

Les principales fonctions

PHP dispose de fonctions qui vont permettre de manipuler ces strings si particulières. Nous allons voir ici les principales, celles que vous retrouverez le plus souvent.

La fonction date()

Permet de retourner une date au format choisi. Soit la date du moment, soit une date en fonction d’un timestamp.

Exemples

<?php

echo date('d/m/Y',strtotime('2015-04-03 10:12:05'));

?>

<?php

// où on récupère $page qui est un objet (voir formation POO)

$stringdate = 'Publié le '.date('d/m/Y',strtotime($page->date)).' à '.date('H',strtotime($page->date)).'h'.date('i',strtotime($page->date));

?>

La fonction time()

La fonction time() retourne le timestamp au moment de l’appel.

Exemple

<?php

// Affiche "1428339810" au moment de la rédaction de cet article

echo time();

?>

<?php

echo 'Demain : '.date('d/m/Y', (time()+(60*60*24)));

?>

La fonction microtime()

Retourne un microtime, autrement dit le timestamp unix en microsecondes. Permet de mesurer des périodes de temps inférieures à la seconde.

La fonction strtotime()

Cette fonction va permettre de transformer une string en date. Attention cependant, selon le formatage de la date vous pouvez rencontrer des problèmes. En effet un bon nombre de formatages vont donner le bon timestamp, là où d’autres seront interprétés de la mauvaise façon.

Ces fonctions sont celles qui sont le plus souvent utilisées pour le formatage des dates. Mais on aurait également pu citer: mktime(), getdate() qui retourne une date ainsi que son timestamp sous forme d’un tableau PHP (array), checkdate() qui prend le mois, le jour et l’année en paramètre et qui retourne un booléan (true/false) en fonction de si les éléments renseignés sont corrects ou non, etc.

Openska est une société de conseil et de formation spécialisée dans le Web, la data et l’Opensource. Notre expertise PHP est très développée (livres PHP 7 avancé, performances LAMP…) et nous avons décidé d’utiliser cette expérience pour vous faire partager des bonnes pratiques.

Nos formations PHP pour débuter