(modifié le 16 décembre 2014 à 1:18)

But : utiliser le champ DATETIME SQL et surtout récupérer une valeur exploitable en PHP

J'écris ce petit billet tout simplement car je vois souvent des scripts PHP traiter les dates dans des formats exotiques. Vous avez besoin de récupérer une date et une heure (ou l'un des deux) stockée dans votre base de données en PHP et vous ne savez pas comment faire ? Cette astuce est pour vous 🙂

Premièrement : utilisez le format DATETIME de SQL. Pas de INT, VARCHAR ou autre type inapproprié ! De plus utiliser ce format permet d'avoir un script universel et indépendant des langues locales configurées sur le serveur.

Deuxièmement votre date et heure seront d'autant plus facile à récupérer en PHP puisqu'ils sont stockés dans un seul et unique champ :
[sql]SELECT DATE_FORMAT(nom_du_champ, 'le %d/%m/%Y à %k:%H:%s')
AS date_heure
FROM table where [condition][/sql]

Exemple de résultat retourné : le 24/04/2008 à 9:09:07

Il vous suffit d'appliquer un explode si vous souhaitez séparer la date et l'heure, ou alors (et c'est plus simple) de faire deux sélections SQL.
Récupération de la date et de l'heure de manière séparée :
[sql]SELECT DATE_FORMAT(nom_du_champ, '%d/%m/%Y') AS ma_date,
DATE_FORMAT(nom_du_champ, '%k:%H:%s') AS mon_heure
FROM table where [condition][/sql]
En espérant que suite à ce billet vous userez correctement des différents types de champs MySQL mis à votre disposition 🙂

L'usage du timestamp(); PHP n'est pas conseillé car limité : le TimeStamp UNIX commence au 1er janvier 1970 et sera valable jusqu'en 2038 (pour l'instant sur des machines en 32bits : 2^31 = 2147483647). Si vous devez traiter des dates antérieures au 01/01/1970 : le format DATE ou DATETIME deviennent alors beaucoup plus pratique

Pour vos conversions timestamp vous pouvez utiliser cette extension firefox ou bien ce convertisseur en ligne très pratique 😉

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter