Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

LE TIMESTAMP UNIX EN PHP

Présentation du timestamp

Le timestamp, en PHP, est un nombre représentant le nombre de secondes écoulées entre le 1er janvier 1970 à 00:00:00 GMT et une certaine date donnée. Dans le cas du PHP, nous utilisons le timestamp UNIX.

Ce timestamp va être très utile et très pratique à l’utilisation car c’est un nombre et car il est très simple de travailler avec les nombres en PHP et de les manipuler.

Obtenir le timestamp actuel en PHP

Pour obtenir le timestamp actuel, c’est-à-dire le nombre de secondes écoulées depuis le 1er janvier 1970 jusqu’à aujourd’hui, nous allons utiliser la fonction time().

En effet, cette fonction va tout simplement nous renvoyer le timestamp actuel.

Utilisation de la fonction PHP time()

On utilise la fonction time() pour obtenir le timstamp actuel en PHP

Si vous testez ce code chez vous, il est tout à fait normal que vous n’ayez pas les mêmes valeurs que moi étant donné que nous ne le testons pas à la même date !

Obtenir un timestamp en PHP

Pour obtenir le timestamp relatif à n’importe quelle date en PHP, nous utiliserons plutôt la fonction mktime().

Cette fonction va retourner le timestamp UNIX d’une date. Pour cela, il va falloir lui passer six arguments :

  1. Une heure ;
  2. Des minutes ;
  3. Des secondes ;
  4. Un jour ;
  5. Un mois ;
  6. Une année.

Par exemple, pour obtenir le timestamp relatif au 25 janvier 2015 à midi, on écrira :

Utilisation de la fonction PHP mktime()

On utilise la fonction PHP mktime() pour obtenir le timestamp UNIX relatif à une date

Convertir une date en timestamp

Bien souvent, les dates en PHP vont être transmises sous forme de chaines de caractères, en utilisant bien évidemment les notations anglo-saxonnes qui sont les notations reconnues par défaut par le PHP.

Le format de date le plus utilisé en PHP est certainement le format « année/mois/jour » ou encore « yyyy/mm/dd ».

Pour transformer une telle date en son équivalent timestamp, nous allons utiliser la fonction strtotime() de la façon suivante :

Utilisation de la fonction PHP strtotime()

On utilise la fonction PHP strtotime() pour convertir une date en un timestamp UNIX

La fonction strtotime() va également comprendre des dates littéraires ainsi que certaines expressions et va accepter des heures, minutes et secondes.

Autres cas d’utilisation de la fonction strtotime() en PHP

On peut fournir des expressions complexes à la fonction PHP strtotime()

Comparer des timestamps

L’utilisation de timestamps va être essentielle pour pouvoir comparer efficacement des dates car il est beaucoup plus simple en PHP de comparer deux nombres plutôt que deux chaines de caractères (et cela est d'autant plus vrai lorsqu'on parle de dates stockées sous forme de chaînes de caractères).

En effet, le PHP ne sait tout simplement pas comparer deux dates écrites sous la forme « 25 january 2015 » et « 15 june 2015 » par exemple.

Celui-ci va se contenter de comparer caractère par caractère et comme, dans le cas présent, le « 1 » de « 15 » est inférieur au « 2 » de « 25 », le PHP va juger que la chaine de caractères « 15 june 2015 » est inférieure à « 25 january 2015 ».

Une nouvelle fois, cette comparaison est tout à fait juste pour des chaines de caractères. Le PHP ne saura tout simplement pas interprêter qu’il s’agit de dates à comparer.

Le même problème va se poser pour certaines dates écrites sous la forme « 2015/1/25 ».

Nous allons donc préférer comparer des chiffres et l’utilisation de timestamp va ici être indispensable.

On va par exemple tout simplement pouvoir utiliser une condition de type if...else en comparant nos deux timestamps pour déterminer quelle date est antérieure à l'autre.

Utilisation de timestamps pour comparer des dates

On peut comparer des dates simplement et de manière infaillible en comparant leurs timestamps

Chapitre précédent

Chapitre suivant