date et php : extraire le mois d'une date SQL (debutant)

date et php : extraire le mois d'une date SQL (debutant) - PHP - Programmation

Marsh Posté le 29-06-2006 à 13:28:57    

BONJOUR,
 
j'ai une table avec un champ date, dans ma table anniversaires  qui me enregistre la date sous ce format: 2005-09-10 00:00:00
 
en php, je voudrais lister dans une page tous mes enregistrement (ex : anniversaires) du mois en cours :
comment fiare pour extraire le mois dans ma requete SQL ?
 
voici ma requete :
 

Code :
  1. $sql= "SELECT * FROM anniversaires";
  2. $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  3.     //exécution de la requête:
  4.     $requete = mysql_query( $sql, $connexion) or exit(mysql_error());
  5.     //affichage des données:
  6.     while( $result = mysql_fetch_object( $requete ) )
  7.     {
  8.        echo("<div align=\"center\">".$result->nom." ".$result->date_expiration." ; </div>\n" ) ;
  9.     }


 
pour afficher le mois en cours, j'ai pensé à ca /
 

Code :
  1. date(format, time());//retourne une date sous forme d'une chaîne, au format donné par la chaîne format.
  2. echo date("m <br />" ); //  Affichera le jour / mois / annnée en cours du serveur.


 
 
Pouvez vous m'aider SVP ? ou me donner des pistes ?
MERCI D'avance
 
Francois
 
ps : qu'est ce que c'est galère les dates ! .-)

Reply

Marsh Posté le 29-06-2006 à 13:28:57   

Reply

Marsh Posté le 29-06-2006 à 14:14:39    

Regarde du coté de la fonction MySQL MONTH() : http://dev.mysql.com/doc/refman/4. [...] tions.html


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 29-06-2006 à 21:56:22    

sinon tu as la fonction explode() qui n'est pas mal non plus.
 
Si j'étais toi, je modifierais le champ de ma table. Ca ne sert à rien une date de la forme JJ-MM-AAAA HH:MM:SS surtout pour une date d'anniversaire, à moin que tu as l'heure exacte de la naissance lol.
 
Modifie ton champ pour n'avoir que par défaut ce type de format : JJ-MM-AAAA
 
Après tu fais un explode sur le caractère -
Cela te permettra d'extraire le jour, le mois et même l'année. Tu pourras même la transfomer en date FR.
 
Tiens j'ai voici le code source de mes fonctions qui permette de convertir une date US en date FR et vise versa:
 

Code :
  1. function dateUStoFR($dateUS, $delimiter='-', $separator='-'){
  2. $date = explode($delimiter, $dateUS);
  3. $dateFR = sprintf("%02d%s%02d%s%04d", $date[2], $separator, $date[1], $separator, $date[0]);
  4. return $dateFR;
  5. }
  6. function dateFRtoUS($dateFR, $delimiter='-', $separator='-'){
  7. $date = explode($delimiter, $dateFR);
  8. $dateUS = sprintf("%04d%s%02d%s%02d", $date[2], $separator, $date[1], $separator, $date[0]);
  9. return $dateUS;
  10. }


Message édité par AlphaZone le 29-06-2006 à 21:58:42
Reply

Marsh Posté le 29-06-2006 à 23:06:29    

les timestamps devraient toujours être utilisés d'après moi. C'est une bonne habitude à prendre et ça permet ensuite de faire tout ce qu'on veut avec sans utiliser des solutions batardes. :o

Reply

Marsh Posté le 29-06-2006 à 23:14:32    

Qu'entend-tu par "batarde" ?
 
Il est clair que le timestamps peut s'avérer utile. Mais pour cela il faudrait un exemple concret car personnellement, je ne vois pas trop.
 
De même que pour le moment ceux ne sont que simples dates. Est-ce qu'au niveau traitement c'est plus rapide ? Est-ce que la conversion du timestamps en date utilise moin de ressource ?
 
Merci de m'éclairer ma lanterne. Ca pourrait m'interresser si c'est plus efficace ;)

Reply

Marsh Posté le 30-06-2006 à 01:57:49    

AlphaZone a écrit :

Qu'entend-tu par "batarde" ?
 
Il est clair que le timestamps peut s'avérer utile. Mais pour cela il faudrait un exemple concret car personnellement, je ne vois pas trop.
 
De même que pour le moment ceux ne sont que simples dates. Est-ce qu'au niveau traitement c'est plus rapide ? Est-ce que la conversion du timestamps en date utilise moin de ressource ?
 
Merci de m'éclairer ma lanterne. Ca pourrait m'interresser si c'est plus efficace ;)


 
ben je trouve bcp plus propre d'utiliser un timestamp pour stocker la date. A l'affichage, on en retire ensuite ce qu'on en veut avec PHP.  
 
C'est comme lorsque tu vas stocker les messages d'un forum. Tu vas pas stocker le html résultant, mais bien le bbcode et le texte.
 
C'est un question de pure logique. On stocke et on travaille ce qui sort et pas l'inverse. Je trouve idiot de définir une date dans mysql. C'est bien mieux d'extraire ENSUITE ce dont on a besoin d'un timestamp.

Reply

Marsh Posté le 30-06-2006 à 07:32:50    

Je suis d'accord avec toi sur le BBCode.
 
Je comprend "à peu près" ce que tu veux dire, mais je ne vois toujours pas l'interêt. Tu dois effectuer des opérations mathématiques pour convertir des secondes en jour, mois et année. De même : Pourquoi s'embêter à convertir un timestamps, alors qu'on peut stocker directement la date ? Ca fait quand même un gain de traitement php, non ?

Message cité 1 fois
Message édité par AlphaZone le 30-06-2006 à 07:34:00
Reply

Marsh Posté le 30-06-2006 à 07:52:21    

AlphaZone a écrit :

Je suis d'accord avec toi sur le BBCode.
 
Je comprend "à peu près" ce que tu veux dire, mais je ne vois toujours pas l'interêt. Tu dois effectuer des opérations mathématiques pour convertir des secondes en jour, mois et année. De même : Pourquoi s'embêter à convertir un timestamps, alors qu'on peut stocker directement la date ? Ca fait quand même un gain de traitement php, non ?


 
Quels calculs ??  :??:  
 

Code :
  1. date ( string format [, int timestamp] )


 
Pour rappel...

Reply

Marsh Posté le 30-06-2006 à 10:07:40    

Bien vu. Je n'avais jamais fait attention à cela. Maintenant ca me paraît beaucoup plus simple d'utilisation.
 
Merci pour le rappel ;)


Message édité par AlphaZone le 30-06-2006 à 10:07:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed