Transformer une date au format JJ-MM-AAAA

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Transformer une date au format JJ-MM-AAAA

par mere-teresa » 23 oct. 2006, 11:49

Mieux vaut faire faire le boulot par MySQL ;) ça te fera moins de PHP. Par ailleurs, les SELECT *, c'est le mal !
Tu prends tout au lieu de ce qui est utile seulement, et tu es obligé d'aller voir dans la base le nom des champs.

par thegritch » 23 oct. 2006, 11:26

Ou encore date_format() en mysql (très pratique et rapide) Evitant les converstions de date en php.

par naholyr » 05 oct. 2006, 00:43

Notez l'existence de strtotime() qui permet de convertir les dates issues de MySQL (entre autres) en timestamp, que l'on peut ensuite passer à date() et formater de la façon dont on le souhaite.

par albat » 04 oct. 2006, 23:08

:pouce: :wink:

par zarbrok » 04 oct. 2006, 21:18

plus serieusement je détaille...
donc

Code : Tout sélectionner

<? function tofrench($date_us) { // donc on recupere la variable '$date_us' passer en attribut // ensuite on recupere les annees, mois, jours separes par des '-' // dans un tableau '$date' grace à la fonction explode $date = explode('-',$date_us); // on recupere dans le tableau '$date' : // '$date[2]' >>> càd le jour // '$date[1]' >>> càd le mois // '$date[0]' >>> càd l'annee // on separe chaque jour, mois, annee par des '-' $date_francais = "$date[2]-$date[1]-$date[0]"; // on retourne le tout et le tour est joué return $date_francais; } echo tofrench($date_us) ; // (",) ?>
:wink:

par zeus » 04 oct. 2006, 21:05

Bien sur que non, ton intervention est tout a fait valide dans le sens où tu apportes une solution au problème posé.

Ce que je tenais à te faire remarquer, c'est que si tu expliques ton code, ns_deux le comprendra surement et, même s'il fait copier/coller, il a des chances qu'il comprenne ce qu'il fait ;)

par zarbrok » 04 oct. 2006, 21:03

:oops:
je suis désolé tu peux effacer le post si tu veux ;)

par zeus » 04 oct. 2006, 15:04

:? euh, bonjour zarbrok

C'est certes sympatique de ta part de participer, mais ce n'est pas dans l'esprit du forum de donner du code tout cuit et encore moins de le fournir sans aucune explications ...

par zarbrok » 04 oct. 2006, 13:48

Code : Tout sélectionner

<? $date = "2006-10-04"; /* date us ->fr */ function tofrench($date) { $date = explode('-',$date); $date2 = "$date[2]-$date[1]-$date[0]"; return $date2; } $date_en_francais = tofrench($date) ; ?> ;)

par zeus » 04 oct. 2006, 07:30

Je pense que ce sujet de la FAQ pourra t'aider ;)

Transformer une date au format JJ-MM-AAAA

par ns_deux » 04 oct. 2006, 06:26

Bonjour à tous.
Tout d'abord merci à ce site qui m'est d'un grand secours à chaque fois. ;-)
J'ai un petit soucis de formatage de date dans une requete generique.
Je m'explique:
J'ai un formulaire de recherche php (recherche.php) qui marche tres bien avec un calendrier qui me permet de choisir une date au format AAAA-MM-JJ afin de pouvoir interroger ma base mysql.
Par souci d'esthetisme, je voudrais que ma date soit au format JJ-MM-AAAA. (cà, j'ai reussi à le faire dans la formulaire recherche.php) par contre dans mon module recherche_resultat.php en POST, jai une requete generique et là je n'arrive pas à retransformer ma date en format AAAA-MM-JJ exploitable par mysql.
Voilà le code de ma page recherche_resultat.php
<?php
//...
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$tbl=array('materiel', 'unite', 'modele', 'utilisation', 'cie', 'winpark', 'origine', 
           'instance_reforme', 'cie', 'numero', 'lettre_de_cde', 'date_installation', 
           'nom_csav', 'position', 'date_fin_garantie', 'date_verif', 'oam', 'famille', 
           'code_article', 'lettre_de_cde', 'grpt_ou');
// Là il faut que je remette la date_installation du post en format AAAA-MM-JJ pour etre exploitable par la requete generique ci-dessous
foreach ($tbl as $champ) {
$$champ='';
if (isset($_POST[$champ])) {
if (trim($_POST[$champ])!='') {
$$champ=trim($_POST[$champ]);
if ($requete!="") $requete .=' AND ';
$requete .= '`'.$champ."` like '%".mysql_real_escape_string($$champ)."%'"; 
}
}
if ($requete != "")
{
 $req ="SELECT * FROM `materiel` WHERE ".$requete; 
}
else
{
$req ="SELECT * FROM `materiel` "; 
}
} 

$result = mysql_query($req,$connect) or die ('<br><br><br><center>La reponse ne contient aucun enregistrement <br><br> ou <br><br> une erreur est survenue qui est : '.mysql_error().'</center>' );
$total = mysql_num_rows($result);
?>
Si qqun pouvait m'aider....
Merci d'avance