begin process at 2012 05 28 23:38:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Changer le format d'un timestamp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changer le format d'un timestamp

dimanche 2 août 2009 à 13:04:56 | Changer le format d'un timestamp

ofillion

Bonjour à tous,

Dans ma base, j'ai un champs timestamp qui enregistre par défaut la date et l'heure du jour lors de l'ajout d'un enregistrement. Elle s'ajoute dans ce format ex : 2009-08-02 06:45:00.

Sur mon site, dans mes pages de visualisation d'info, je veux afficher la date mais sans l'heure. En fait, je ne veux que 2009-08-02. J'ai essayé date(), date_format('Y-mm-dd',$date) mais rien n'y fait.

Quelqu'un pourrait me venir en aide?

Merci

dimanche 2 août 2009 à 21:02:58 | Re : Changer le format d'un timestamp

kohntark

Membre Club

Salut,

Fais ça dans la requête sql :

Code :
SELECT DATE_FORMAT(tonChampDate, "%Y-%m-%d") FROM taTable


Cordialement,

Kohntark -

lundi 3 août 2009 à 12:59:50 | Re : Changer le format d'un timestamp

ofillion

Bonjour,

En fait, je ne veux pas sélectionner mes données à partir de la date.

Ma requête récupère la liste de dossier par idDossier et je veux afficher la date de chacun des dossiers alors j'ai :

-------------------------
$sql_doss_search = "SELECT * FROM dossier WHERE idDossier LIKE '$idDossier'";
$query_doss_search = mysql_query($sql_doss_search)
or die ("Requête incorecte");
while ($rs_doss_search=mysql_fetch_array($query_doss_search)) {
-------------------------

et ici je liste les dossiers.

Comment je peux afficher la date des dossiers sans l'heure car mon champs $dateDossier est un timestamp.

J'ai essayé :
--------------
echo date_format($dateDossier,'Y-m-d');
--------------
mais ca ne fonctionne pas... aussi à l'inverse :
--------------
date_format('Y-m-d',$dateDossier);
--------------
mais pas plus de succès.

Merci

lundi 3 août 2009 à 13:37:09 | Re : Changer le format d'un timestamp

kohntark

Membre Club

La requête que je te propose ne sélectionne pas les enregistrements à partir d'une date (ce n'est pas un WHERE) mais la formate comme tu le souhaites.

En l'adaptant à ta requête ça devrait donner qq chose comme :

Code PHP :

$sql_doss_search = "SELECT
DATE_FORMAT(tonChampDate, "%Y-%m-%d"), autrechamp, autreautrechamp
FROM dossier
WHERE idDossier LIKE '$idDossier'";



Cordialement,

Kohntark -

mercredi 5 août 2009 à 10:18:05 | Re : Changer le format d'un timestamp

nautilus99

Réponse acceptée !

Bonjour,

La solution proposée par Kohntark est valide, mais hélas pas portable, la fonction DATE_FORMAT() de MySQL n'étant soit pas implémentée ailleurs, soit pas compatible au niveau syntaxe.

Au vu de ton format dateTime utilisé, la fonction date ne peut effectivement pas le reconnaitre. La documentation date() das la doc PHP précide:
"Note: Pour générer un timestamp à partir d'une représentation de date, vous pouvez utiliser la fonction strtotime(). De plus, certaines bases de données disposent de fonctions pour convertir leurs propres formats de date en timestamp (par exemple, MySQL et sa fonction » UNIX_TIMESTAMP())."

Avec le format retourné par ton MySQL standard, un simple:

Code PHP :
$dt = substr( $dateDossier, 0, 10 ) ;

remplit la mission.

mercredi 5 août 2009 à 19:37:46 | Re : Changer le format d'un timestamp

kohntark

Membre Club


[mode inauguration smileys>>autres]
Nautilus !!!!
T'as fini de me contredire ????
je m'adapte au code !!
[/mode]
(inutile de te notifier que je plaisante )

Plus sérieusement, tu as bien raison de le préciser, ce n'est pas portable. Mais la toute première raison de cette "non portablité" est l'utilisation de mysql_query. Il aurait fallu conseiller PDO, encore qu'il y ait long à dire là dessus, la réelle abstraction d'un sgdb ne pourra se faire efficacement que lors d'un respect bien plus prononcé des normes sql pour chacun d'entres eux, autant dire que ça n'est pas pour demain.
Par ailleurs, et tu me corrigeras si je me trompes (j'ai une mémoire qui s'apparente à une prom de 56K), mais il me semble que le format date retourné par Oracle est incompatible avec ta solution.

Cordialement,


Kohntark -

mercredi 5 août 2009 à 19:55:50 | Re : Changer le format d'un timestamp

nautilus99

Oui, les problèmes de portabilité existent et sont souvent un casse-tête d'ailleurs.

L'appel d emysql_query, tout comme le sappels directs aux divers pilotes, je les ai abndonnés depuis pas mal d etemps, d'abord au profit de adodb, puis de PDO..

Bien qu'une portabilité totale soit difficile à atteindre, on peut tenter de réduire la non portabilité.

[mode joke on]
En mod enattif, oui Oracle a un format d etimestamp incompatible avec la version chaine textuelle de MySQL et quasiment tous les autres.
Mais on peut le forcer via un set DATETIMEFORMAT=ISO pour résoudre cette incompatibilité.
[mode joke off]

mercredi 5 août 2009 à 20:13:49 | Re : Changer le format d'un timestamp

kohntark

Membre Club

[joke]

DATETIMEFORMAT=ISO


... La solution proposée par Nautilus est valide, mais hélas pas portable, la fonction DATETIMEFORMAT d'Oracle n'étant soit pas implémentée ailleurs, soit pas compatible au niveau syntaxe.

hé ouais, c'est le bord.., on tourne en rond.
[/joke]

Bonne soirée à toi,


Kohntark -

mercredi 5 août 2009 à 20:23:41 | Re : Changer le format d'un timestamp

nautilus99

lol, non, on ne tourne pas en rond :)
Avec PDO, on y arrive très bien, en héritant d ePDO et en organisant un peu le système on arrive à une abstraction d epresque tout, sauf les procédures stockées..

Et encore on n'a abordé que MySQL et Oracle, DB2 et MS-SQL collectionnent aussi les "extensions" incompatibles...



mercredi 5 août 2009 à 20:51:10 | Re : Changer le format d'un timestamp

kohntark

Membre Club

yes, mais s'il faut re développer du code et étendre PDO ce n'est plus vraiment une classe d'abstraction, ça revient à faire un switch case 'mysql'; case 'oracle' (je tire un peu par les cheveux mais juste un peu)
Et puis les triggers, sequences, etc ... ça se gère efficacement comment via PDO ??
Bref, j'ai du mal à comprendre l'engouement autour de PDO, même si je l'utilise et que cela résous beaucoup de pb. Pour autant c'est loin, très loin, d'être la solution miracle exposée un peu partout, mais peut être sont ce mes lacunes qui me font penser ça.


Cordialement,


Kohntark -


1 2

Cette discussion est classée dans : date, changer, format, timestamp, heure


Répondre à ce message

Sujets en rapport avec ce message

Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous format de date et time en c+ [ par tertulia ] comment modifier le format de la date c'est dire remplacer les / par - et de l'heure càd remlacer : par - voilac pour pouvoir creer un fichier avec la changer la date...... [ par rich25200 ] bonjour,dans ma BDD j'insere la date avec la fonction NOW(), il m'insere la date avec ce format "2004-04-28 11:21:03"..je voudrais l'afficher dans une Changer le Format de la Date [ par DiJiTooL ] Bonjour tlm,Voila en gros quand j'extré mes donné de la bdd SQLj'ai la date au format "2002-26-07"et je voulé savoir si il y avais un fonction en PHP Recherche aide ....... [ par nagrom_om ] Salut tout le monde,Je cherche a faire une fonction qui remplit chaque jour (ajout d'informations dans une table) d'une date de debut à une date de fi Convertion d'une date Timestamp au format RSS [ par christobal ] Bonjour, les articles qui sont écrit sont enregistré en base avec comme date un timestamp de 14 chiffres.J'aimerais le récupérer pour le mettre dans l Comparaison date de format DD-MM-YYYY avec une date de format TIMESTAMP [ par midoxe ] Bonjour, je dois lister les message par date d'un utilisateur or, mon calendrier date picker génère une date sous format [color=green]DD-MM-YYYY[/co Changer heure serveur canadien pour heure francaise [ par guilstunt ] Bonjour, je suis héberger sur un serveur canadien (je ne l'ai pas fais expres [^^mad5]) donc j'ai un décalage de -6H J'aimerai si possible pouvoir php date format [ par santille ] Bonjour, Je recherche une solution pour ce code : [code=php] for($m = 0;$m "; } SQL: SELECT DISTINCT , 2 requêtes SELECT ? [ par audiogenic ] Bonsoir, je cherche à obtenir aucun doublon sur les "ip" en les classant par "date" et "heure" DESC SELECT DISTINCT ip,date,heure FROM table ORDER BY


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales