Manipuler des dates PHP


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Manipuler des dates PHP

Message le Lun Aoû 14, 2006 8:28

Bonjour,

Tout dabord je me dois de preciser que je débute en PHP.
dans ma base de données j'ai des enregistrement de dates sous forme
14-08-2006 en VARCHAR.

je souhaiterais afficher des données stockées entre deux dates comment faire?

ma requete actuelle ne fonctionne pas tout a fait :

Code: Tout sélectionner
$sql = "SELECT * FROM matable WHERE monchamps BETWEEN '$dat1' AND '$dat2' ";


pouvez vous m'aider please.

netsys
WRInaute passionné
WRInaute passionné
 
Messages: 1111
Inscription: 17 Juil 2004

Message le Lun Aoû 14, 2006 8:44

Tu compare tes dates avec quel type de champs ?
Si c'est des dates mysql il faut transformer tes dates php au format de ta BD.


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Lun Aoû 14, 2006 8:59

je n'ai pas tout a fait saisi ce que tu as écrit.

mes dates ne son pas des dates mysql ce sont des dates saisies directement dans la base de données mais mon soucis est qu'il ne me les considere pas comme des dates.


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Lun Aoû 14, 2006 9:03

Salut,

Premièrement ton champ doit être de type DATETIME pour que tu puisses bénéficier des très puissantes fonctions de calculs de date de mysql. Etant donné que ton champ est sous la forme varchar, ca ne sera pas possible. De plus je crois que le format de tes dates n'est pas correct pour mysql. Si j'ai le temps je te donnerais un petit bout de code pour transformer tes dates en format correct ;)

En attendant il y a cette page :

http://mysql.com/doc/refman/5.0/fr/date ... tions.html

Tu y trouveras ton bonheur ;)

Pour ton problème, si tu sais que $date1 est inférieur à $date2 :

Code: Tout sélectionner
$sql = 'SELECT * FROM matable WHERE monchamps > '$date1' AND monchamps < '$date2';


Après avoir converti correctement tes champs en DATETIME ;)


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Lun Aoû 14, 2006 9:06

merci pour ces précision je me remets au travail de suite.


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Lun Aoû 14, 2006 9:22

ok mes dates sont maintenant au format DATE aaaa-mm-jj comment afficher mon resultat en jj-mm-aaaa ?


Artefact2
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 23 Juil 2006

Message le Lun Aoû 14, 2006 10:53

Va voir la doc MySQL ;)

iD.NicKy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 23
Inscription: 28 Aoû 2005

Message le Lun Aoû 14, 2006 12:45

webac a écrit:ok mes dates sont maintenant au format DATE aaaa-mm-jj comment afficher mon resultat en jj-mm-aaaa ?


tu transforme ta date en timestamp puis tu la repasses en date

++


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Lun Aoû 14, 2006 15:00

webac a écrit:ok mes dates sont maintenant au format DATE aaaa-mm-jj comment afficher mon resultat en jj-mm-aaaa ?


Très simple : SELECT GET_FORMAT(date,'EUR') FROM table ou plus de liberté avec DATE_FORMAT(date, '%d %m %Y');

Voir la doc ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités