Conversion date dd/mm/yyyy en yyyy-mm-dd

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 504 fois - Téléchargée 27 fois

Contenu du snippet

Cette fonction vous permettera de convertir une date "française" afin de l'insérer dans MySql.

Source / Exemple :


function converdatefra($datef)
             {
                  if ($datef =="")
                      return "Nombre d'arguments incorrects";
                  if (preg_match("/(\d{4})([\/-\s])(\d{2})([\/-\s])(\d{2})/", $datef))$tmp = 1;
                      else if (preg_match("/(\d{2})([\/-\s])(\d{2})([\/-\s])(\d{4})/", $datef))
                      $tmp = 2;

                  if (!$tmp)
                       {
                  return "Date non reconnue";
                          }
                  else
                  {
                   switch ($tmp)
                   {
                   case 1:
                        $ch= $datef[4];
                        $date = substr($datef, 8, 2).$ch.substr($datef, 5, 2).$ch.substr($datef, 0, 4);
                   return $date;
                   break;

                   case 2:
                        $ch= $datef[2];
                        $date = substr($datef, 6, 4).$ch.substr($datef, 3, 2).$ch.substr($datef, 0, 2);
                   return $date;
                   break;
                   }
                  }
             }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
21 octobre 2004

j'ai un peu plus simple :

function reformate_date($value){
if(ereg("/", $value)) return preg_replace_callback("/(\d+)\/(\d+)\/(\d+)/", create_function('$matches', 'return $matches[3]."-".$matches[2]."-".$matches[1];'), $value);
}
Messages postés
116
Date d'inscription
jeudi 12 juillet 2001
Statut
Membre
Dernière intervention
23 juin 2005

jonguignolo> bien sur que Mysql accepte tout le format de date pour lui c'est des données...
Mais si tu veut utiliser la fonction de tri de Mysql (qui est un des atous d'une base de donnée) tu dois metre le champ mysql en 'DATE' et ne metre que des dates du format yyyy-mm-jj pour que mysql puisse faire le classement ce qui est logique si on considere yyyymmjj comme un nomre les date se rangent automatiquement en ordre croissant/décroissant ce qui n'est pas possible avec une date au format jj//mm/yyyy sans conversion ou lourd calcul, ce qui dans une db sur la quantitée de données n'est pas des plus intéressant...

J'espere avoir repondu a ta question ++ et bonne prog a ts
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

salu je trouve ca pa mal, mai est-ce que c'est pas plus simpls de creer 3 listes déroulantes: jour, mois, année. Ensuite tu récupère tes var & comme ca tu peux les mettre dans l'ordre que tu veux.
ex $date=$annee."/".$mois."/".jour;
Comme ca tu as juste à inserer $date dans ta BDD! en tout cas, c'est ce que j'ai fait pour 1 script & ca marche très bien.
Voila, si ca peu rendre service?
Messages postés
1
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
10 juin 2004

Sous mysql, j'ai déclaré une variable sous le format date. Elle se présente sous la forme YYYY-mm-dd. Quand l'utilisateur saisie une date (sous la forme: dd/mm/yyyy), je suis obligée de modifier son, format.
Messages postés
91
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
5 août 2010

salut nina8505 heu je vomprends po bien à quoi ça sert à dire vrai parceke mysql accepte trés bien : date("d/m/Y");
voila si tu peu rep
sinon c sympa.
++ PhPeteur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.