8791 sujets

Développement web côté serveur, CMS

Salut à tous,
J'ai un petit souci en PHP... ce qui n'est clairement pas ma spécialité.

Je recupère une date depuis ma base mysql de la forme : 20101109191718
Et j'aimerai en faire quelque chose de lisible à l'affichage ! (10.11.2010 19:17)

Est-ce possible sans faire mille substr ?

Merci à vous.
Quel est le type de la colonne qui contient la date ? Ce devrait être "datetime", ce qui permet ensuite une conversion facile avec la fonction SQL date_format().
Si c'est un timestamp (en supposant que les dates enregistrées sont bien les dates au format unix), tu peux les formater avec la fonction php date().
moust a écrit :
Si c'est un timestamp (en supposant que les dates enregistrées sont bien les dates au format unix), tu peux les formater avec la fonction php date().

Non, ce n'est pas un vrai timestamp dans le sens nombre qui représente les secondes écoulées depuis le 1er janvier 1970. Ca ressemble à un nombre mais ce n'en est pas un.

C'est une représentation complètement ridicule: yyyymmddhhmmss par opposition à yyyy-mm-dd hh:mm:ss. Je n'ai encore pas compris l'intérêt d'utiliser la première plutôt que la deuxième, plus lisible et surtout beaucoup plus courante. ON n'est loin de l'époque où 7 octets font la différence.

Pour un truc aussi ridicule, autant sortir l'outil magique: les regexp
(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}) => $1-$2-$3 $4:$5:$6 ou bien $3.$2.$1 $4:$5:$6

Soit dit en passant, je pense que les fonctions SQL de traitement et de formatage de date doivent aussi marcher sur les champs de type timestamp. Sinon ce type deviendrait inutile, autant utiliser des int (ou des long int pour ne pas avoir de problème en 2038)
Modifié par QuentinC (11 Nov 2010 - 05:39)
Je pense que le mieux est de stocker les dates dans un champ DATETIME et de les formater au moment de les récupérer dans la base genre :


$sql = "SELECT  DATE_FORMAT(ton_champ_date, '%d-%m-%Y') as Date FROM ta_base";