Convertir date Fr en anglais avant enregistrement mysql [Résolu]

Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
- - Dernière réponse : booksondany
Messages postés
3
Date d'inscription
lundi 23 janvier 2012
Dernière intervention
29 avril 2013
- 29 avril 2013 à 17:13
Bonjour,

Tout est dit dans le titre ou presque.
Je me sers d'un code javascript pour faire apparaitre un petit calendrier qui, une fois la date choisit, me l'insert dans un champ text au format jj/mm/aaaa.

J'aimerais qu'au moment de l'insertion dans ma table mysql, la date se convertisse au format aaaa/mm/jj. ainsi mysql me l'affichera dans ma table. Ma table est contistué d'un champ DATE.

Merci
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
3
Merci
Il ne fallait pas mettre des "-" mais plutôt des "/" dans la requête. Je me congratule donc tous seul. a+
Ce qui nous donne :

if (isset($_POST['enregistrer']))
{
$id = $_POST['id'];
$nom = $_POST['liste1'];
$dateDebut = $_POST['dateDebut'];
$dateFin = $_POST['dateFin'];
$nature = $_POST['nature'];
$nbjour = $_POST['nbjour'];

$req = mysql_query("INSERT INTO absence (id, nom, nature, nbjour, debut, fin) VALUES ('','$nom','$nature','$nbjour',STR_TO_DATE('$dateDebut', '%d/%m/%Y'),STR_TO_DATE('$dateFin', '%d/%m/%Y') )");

 }

Merci bruno3591 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de bruno3591
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
2
Merci
Bonjour,

Tu n'as pas dû trop forcer sur la recherche :
$dateDebut = implode('-', array_reverse(explode('/', $dateDebut)));
Commenter la réponse de cs_jeca
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
0
Merci
Je vous joins quand même le bout code correspondant :

if (isset($_POST['enregistrer']))
{
$id = $_POST['id'];
$nom = $_POST['liste1'];
$dateDebut = $_POST['dateDebut'];
$dateFin = $_POST['dateFin'];
$nature = $_POST['nature'];
$nbjour = $_POST['nbjour'];

 $req = mysql_query("INSERT INTO absence (id, nom, nature, nbjour, debut, fin) VALUES ('','$nom','$nature','$nbjour','$dateDebut','$dateFin')");
 }
//echo "<script>alert('Enregistrement effectué !')</script>"; 

?>
Commenter la réponse de bruno3591
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
0
Merci
Salut,

ton titre est incorrect, le résultat n'est pas une date anglaise.
Bref, pour enregistrer une date dans n'importe quelle base de données, c'est
aaaa-mm-dd hh:mm:ss, pas de "/".

Il y a plein d'exemple sur les date partout sur le Net, y compris dans le doc de la fonction date. Perso, je trouve que ce site est très bien fait : http://fr.php.net (doc + exemple).
Commenter la réponse de fregolo52
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
0
Merci
ce format : aaaa/mm/dd hh:mm:ss est accepté par mysql.
Commenter la réponse de cs_jeca
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
0
Merci
Je suis d'accord avec toi, beaucoup de format de date sont reconnu par les SGDB.

Perso, j'ai la commande NOW() dans nom champ date de type timestamp et le format affiché par le requête est celui que je t'ai donné.

Tu as peut-être un format spéficique à respecter, sinon essaie d'utiliser la forme canonique ODBC (celle que je t'ai donnée)
Tu remarqueras que l'exemple donné par [auteur/JECA/12494.aspx jeca]met sous cette forme.
Commenter la réponse de fregolo52
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
0
Merci
Merci pour vos réponses.
Mes recherches n'ont données que des résultats portant sur la conversion du format sql vers format fr. Désolé d'avoir abusé de vos services :)

Concernant la solution de jeca :  $dateDebut = implode('-', array_reverse(explode('/', $dateDebut)));

Etant grand débutant je n'ai pas su faire marcher ta solus.

voici l'état de mon code :

if (isset($_POST['enregistrer']))
{
$id = $_POST['id'];
$nom = $_POST['liste1'];

$dateFr = $_POST['dateDebut'];
$dateDebut = implode('-', array_reverse(explode('/', $dateFr)));

$dateFin = $_POST['dateFin'];
$nature = $_POST['nature'];
$nbjour = $_POST['nbjour'];

$req = mysql_query("INSERT INTO absence (id, nom, nature, nbjour, debut, fin) VALUES ('','$nom','$nature','$nbjour','$dateDebut','$dateFin')");
 }
Commenter la réponse de bruno3591
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
0
Merci
Je n'ai peut-être pas été assez précis ?! Plus personne pour aider un débutant ??

Bonne soirée
Commenter la réponse de bruno3591
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
0
Merci
Le problème vient peut-être du fait que mes champs text pour les dates de début et fin sont alimentés par du javascript :

<TD></TD>
<td>

</td>
<TH>Au</TH>
<TD></TD>
<td>

</td>
Commenter la réponse de bruno3591
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Dernière intervention
28 mars 2010
0
Merci
En me parlant à moi même je vais finir par comprendre :)

Qui aurais quelques secondes pour m'aider à comprendre comment bien utiliser la commande sql DATE_FORMAT ?
J'ai écris une requéte qui ne veut pas prendre la variable récupèrant la date en fr., par contre, ça fonctionne si je tape une date jj/mm/aaaa en dur.

if (isset($_POST['enregistrer']))
{
$id = $_POST['id'];
$nom = $_POST['liste1'];

$dateDebut = $_POST['dateDebut'];

$dateFin = $_POST['dateFin'];
$nature = $_POST['nature'];
$nbjour = $_POST['nbjour'];

$req = mysql_query("INSERT INTO absence (id, debut) VALUES ('', STR_TO_DATE('$dateDebut','%d-%m-%Y'))");

 }

En espérant ne pas me répondre à moi même. :) Merci à la communauté.
Commenter la réponse de bruno3591
Messages postés
95
Date d'inscription
lundi 11 février 2008
Dernière intervention
8 juin 2009
0
Merci
Je te congratule aussi, je cherchais de l'aide en vain, jusqu'à ce que je trouve ton post !
Commenter la réponse de Fo0Zie
Messages postés
3
Date d'inscription
lundi 23 janvier 2012
Dernière intervention
29 avril 2013
0
Merci
Bonjour, j'avais aussi le même problème.. merci pour vos réponses.

book'son..
Commenter la réponse de booksondany

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.