La fonction UNIX_TIMESTAMP de MySQL permet de convertir une date MySQL en timestamp. Cette fonction est utile lorsque, comme moi, vous stockez vos dates sous le format MySQL en base de données et que vous avez des traitements php sur les dates.
Le format date de MySQL
Le format date de mysql est une chaine de caractères de la forme :
"1983-07-30 09:10:57" Correspond à la date du 30 Juillet 1983 à 09H10 et 57 secondes
Qu'est ce qu'un timestamp unix
Un timestamp unix est un entier qui correspond au nombre de seconde écoulées depuis le 1 janvier 1970 à minuit heure UTC, date approximative de la naissance du système d'exploitation unix.
428397057 Correspond nombre de secondes écoulées entre le 1er janvier 1970 minuit et le 30 Juillet 1983 à 09H10 et 57 secondes
Pourquoi stocker des dates au format MySQL
C'est un choix personnel qui n'engage que moi, mais je préfère stocker mes dates au format MySQL tout simplement à cause des différents formats de timestamp (Unix, MySQL, 32 bits, 64 bits ...). Avec le format MySQL mes dates sont intemporelles et ne sont pas affectées par les changements de norme des timestamps.
Pourquoi travailler sur des timestamps
Si j'utilise le timestamp dans mes traitements php c'est parce que celui ci est très commode pour faire des calculs et des comparaisons entre date. Pour ajouter une heure à une date facile :
<?php
$madate = 428397057;
$madate += 3600;
?>
Et hop ma date correspond maintenant au 30 Juillet 1983 à 10H10 et 57 secondes, on ne peut pas faire plus simple.
Transformer un date MySQL en timestamp unix
Pour convertir la date MySQL en timestamp unix il faut utiliser la fonction UNIX_TIMESTAMP comme cela :
SELECT UNIX_TIMESTAMP( '1983-07-30 09:10:57' )
Retourne le timestamp unix :
428397057
Image : openDemocracy