Timestamp (informatique)

Un article de Wikipédia, l'encyclopédie libre.

Timestamp désigne en informatique un compteur numérique servant de référence temporelle et représente le nombre de secondes écoulées depuis un instant de référence.

[modifier] Description

C'est un mot composé venant de l'anglais « time » (heure) et « stamp » (marquage par un timbre ou un tampon). Le terme désigne donc la notion de "timbre horaire".

Le plus souvent l'origine choisie est le 1er janvier 1970 à minuit UTC, qui marque le début de l'ère UNIX. Ce timestamp est plus précisément nommé le « timestamp UNIX » ou « timestamp POSIX », en référence aux normes de l'IEEE qui ont standardisé l'interface de programmation de cette famille de système d'exploitation. La plupart des langages de programmation utilisent cette même référence UNIX par convention et par compatibilité. Certains langages (comme Javascript par exemple) peuvent éventuellement compter un nombre de millisecondes au lieu du nombre de secondes.

Ce compteur est universel et international : il ne compte pas les changements d'heures ni de fuseaux horaires, ce qui est pratique en informatique pour comparer des dates ou pour certains calculs. Toutefois, cela oblige à faire des conversions complexes avant d'afficher une date (ou pour en lire une). Heureusement la plupart des langages ont des fonctions qui se chargent des conversions de ce type, en tenant compte des fuseaux horaires.

[modifier] Implémentations

En PHP, son utilisation se présente sous la forme suivante :

$timestamp_actuel = time();
$timestamp = mktime(14, 30, 50, 03, 21, 1992); //Retourne le timestamp du 21 mars 1992 à 14h 30min 50s
//ce qui donne le nombre : 701184650

Pour la commande mktime, l'implémentation POSIX spécifie que le paramètre est une structure.

Il existe d'autres fonctions permettant de manipuler des timestamps, parmi lesquelles ont peut citer strtotime() (de l'anglais string to time, soit en français "chaîne de caractères en temps") et à utiliser comme cela :

// La variable $today sera égale au timestamp d'aujourd'hui 0h00
$today = strtotime ('today');
// La variable $tomorrow sera égale au timestamp de demain 19h00
$tomorrow = strtotime ('tomorrow 19:00');
// La variable $special sera égale au timestamp du 1{{er}} janvier 1970 plus deux jours et trois heures
$special = strtotime ('01/01/1970 +2 days +3 hours');

Ou encore date() qui affiche une date dans un certain format à partir d'un timestamp :

$s = strtotime ('10/30/1987'); // $s est égal à 562546800
$l = date ('d-m-Y', $s); // $l est égal à 30-10-1987

[modifier] Voir aussi