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

bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 21 oct. 2008 à 09:19 - Dernière réponse : booksondany 3 Messages postés lundi 23 janvier 2012Date d'inscription 29 avril 2013 Dernière intervention
- 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 

12 réponses

Répondre au sujet
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 23 oct. 2008 à 13:21
+3
Utile
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') )");

 }
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de bruno3591
cs_jeca 341 Messages postés mercredi 17 juillet 2002Date d'inscription 14 juillet 2011 Dernière intervention - 21 oct. 2008 à 09:56
+2
Utile
Bonjour,

Tu n'as pas dû trop forcer sur la recherche :
$dateDebut = implode('-', array_reverse(explode('/', $dateDebut)));
Commenter la réponse de cs_jeca
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 21 oct. 2008 à 09:37
0
Utile
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
fregolo52 1106 Messages postés mercredi 15 juin 2011Date d'inscription 19 juillet 2016 Dernière intervention - 21 oct. 2008 à 10:09
0
Utile
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
cs_jeca 341 Messages postés mercredi 17 juillet 2002Date d'inscription 14 juillet 2011 Dernière intervention - 21 oct. 2008 à 10:23
0
Utile
ce format : aaaa/mm/dd hh:mm:ss est accepté par mysql.
Commenter la réponse de cs_jeca
fregolo52 1106 Messages postés mercredi 15 juin 2011Date d'inscription 19 juillet 2016 Dernière intervention - 21 oct. 2008 à 11:09
0
Utile
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
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 21 oct. 2008 à 13:20
0
Utile
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
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 21 oct. 2008 à 20:51
0
Utile
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
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 22 oct. 2008 à 10:37
0
Utile
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
bruno3591 155 Messages postés dimanche 28 septembre 2008Date d'inscription 28 mars 2010 Dernière intervention - 23 oct. 2008 à 08:48
0
Utile
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
Fo0Zie 95 Messages postés lundi 11 février 2008Date d'inscription 8 juin 2009 Dernière intervention - 20 avril 2009 à 21:43
0
Utile
Je te congratule aussi, je cherchais de l'aide en vain, jusqu'à ce que je trouve ton post !
Commenter la réponse de Fo0Zie
booksondany 3 Messages postés lundi 23 janvier 2012Date d'inscription 29 avril 2013 Dernière intervention - 29 avril 2013 à 17:13
0
Utile
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.