Le timestamp est un 'nombre' qui indique le nombre de secondes qui se sont écoulées depuis le premier janvier 1970.
Pour la petite histoire, L'origine de cette date a été choisie comme étant le 1er janvier 1970 00:00:00 UTC, cette date correspond à l'heure 0 de Posix, elle est appelée l'epoch Posix, cela correspond à la date initiale à partir de laquelle est mesuré le temps par les systèmes d'exploitation (UNIX le premier).
"mais à quoi ça sert" ?
Le premier janvier 1970 à minuit, le timestamp valait 0. Il tient maintenant sur 10 chiffres, c'est dire si le nombre de secondes qui se sont écoulées depuis est important !
Passons au code : Pour afficher le timestamp de la seconde actuelle, on utilise la fonction time() de PHP.
Voici un exemple :
< ?php
echo time(); //Affiche le nombre de secondes écoulées depuis le 1er janvier 1970
? >
PHP posséde une fonction pour convertir ce nombre de seconde en une date qui nous parlera mieux :
< ?php
echo date(time());
? >
Si nous indiquons un timestamp différent, PHP va nous retourner tout ce que vous voulez pour le timestamp donné et non pour le temps courant.
Imaginez ceci :
< ?php
$timestamp = time() - 3600;
echo date('j', $timestamp);
? >
PHP va vous retourner ici le jour qu'il était il y a une heure ! en effet, on utilise ici le timestamp $timestamp qui correspond au timestamp actuel (obtenu via la fonction time() auquel on a retranché 3600 secondes, soit une heure) ! Vous comprenez maintenant qu'il va être possible d'effectuer des choses très puissantes avec le timestamp de PHP. Vous venez d'apprendre comment convertir un timestamp en date avec la fonction date(), nous allons maintenant voir comment convertir une date en timestamp, vous allez voir ce n'est pas compliqué !
Conversions d'une date vers un timestamp
PHP permet de convertir une date vers un timestamp. Pour ce faire, on utilise la fonction mktime(). Elle va vous permettre à partir du jour, de l'heure, etc ... d'une date classique, d'obtenir le timestamp correspondant. Ce timestamp pourra être ensuite stocké ou encore subir des traitements. Voici la syntaxe de base de la fonction mktime() :
< ?php
$timestamp = mktime(heures, minutes, secondes, mois, jour, année);
? >
Si vous voulez obtenir le timestamp du 3 janvier 1988 à 2h31 et 10 secondes, vous pouvez mettre ceci :
< ?php
echo mktime(2, 31, 10, 1, 3, 1988);
? >
Modifié le 17/04/2019 à 16:07
Modifié le 17/04/2019 à 16:07
Les timestamp specifiques a php??????????????????????????????????
Modifié le 17/04/2019 à 16:07
Le format "DATE, DATETIME.." doit par exemple être utilisé pour des dates de naissances, car avec le timestamp on ne pourra pas être né avant janvier 1970 ;)
D'ailleurs c'est le problème des inscriptions pour le site aAa si certains l'on remarqué ;) Il faudra que je prenne un moment pour convertir tous ca!
Modifié le 17/04/2019 à 16:07
Pardon, pour la mauvaise expression au niveau de php, mais pour utiliser le timestamp tu es obligé de le manipuler avec des fonctions (php, bash, asp, ...etc) ce qui constitue une perte de temps côté serveur. Les types de données sont unes des premières choses qu'on définit dans du développement, et quand on veut stocker une date, on utilise un champ date, pas un champ integer (entier).
De plus pour manipuler ton timestamp, c'est la galère exemple : trouves moi les dates d'annif d'un mois donné, tu dois : soit calculer les début et fin des jours du mois (donc il va falloir déterminer nombre de jours pour 30 ou 31, puis calculer avec mktime les 2 dates, puis faire une comparaison en php), tandis qu'avec les types de données dates SQL, un petit SELECT * FROM dates WHERE date BETWEEN 01-01-01 AND 01-31-01, bim ta requête s'exécute en vraiment beaucoup fois moins de temps que ton calcul php.
Bref, tout ça pour dire que ce n'est pas pour rien qu'on utilise des types de structures de données adaptées à la donnée elle-même. Une date se stocke dans un champ de type date.
Dsl pour le pavé.
(Et si t'as un souci avec les timestamp tu peux me demander pour tes dates d'annif par exemple, normalement devrait pas y avoir de pb)
Modifié le 17/04/2019 à 16:09