[RESOLU] Strftime et strtotime

Eléphant du PHP | 167 Messages

13 mai 2013, 17:11

Bonjour,

J'ai un problème avec le format de la date, je veux la mettre sous format français. Quand j'insère la date 20/05/2013, ça me renvoie cette erreur
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', strtotime(20/05/2013))', '')' at line 1
<?php 

  include("connexion.php");
$nom=isset($_POST['nom'])?$_POST['nom']:"";
$daten=isset($_POST['date'])?$_POST['date']:"";
$date2=isset($_POST['date2'])?$_POST['date2]:"";
setlocale(LC_TIME, "fr_FR.utf-8");
  //création de la requête SQL
$sql= "INSERT INTO `Formation` (`idFormation`, `nom`, `date`, `date2`) VALUES (' ', '$nom', strftime('%A %d %B %Y', strtotime($date))'., '$date2');";


       

  $requete = mysql_query($sql) or die( mysql_error() ) ;

if($requete)
  {
    echo("La formation a été créé") ;
  }
  else
  {
    echo("La formation n'a pas été créé") ;
  } 

Merci de votre aide.

Mammouth du PHP | 619 Messages

13 mai 2013, 17:24

Bonjour,

je ne connais pas cette fonction mais il a quelques erreur dans ton code avoir

tu mets $daten ou $date2

et dans la requête $date et $date2 :)
<?php 

  include("connexion.php");
$nom=isset($_POST['nom'])?$_POST['nom']:"";
$date=isset($_POST['date'])?$_POST['date']:"";
$date2=isset($_POST['date2'])?$_POST['date2']:"";
setlocale(LC_TIME, "fr_FR.utf-8");
  //création de la requête SQL
$sql= "INSERT INTO `Formation` (`idFormation`, `nom`, `date`, `date2`) VALUES (' ', '$nom', ".strftime('%A %d %B %Y', strtotime($date))."', '$date2');";


       

  $requete = mysql_query($sql) or die( mysql_error() ) ;

if($requete)
  {
    echo("La formation a été créé") ;
  }
  else
  {
    echo("La formation n'a pas été créé") ;
  } 
?>
teste comme cela :)

Eléphant du PHP | 167 Messages

14 mai 2013, 09:08

Bonjour !

Merci ghost5922 d'avoir répondu, j'ai testé et j'ai eu cette erreur :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20 May 2013', '')' at line 1

Mammouth du PHP | 1966 Messages

14 mai 2013, 09:39

et ceci ?
<?php 

  include("connexion.php");
$nom=isset($_POST['nom'])?$_POST['nom']:"";
$date=isset($_POST['date'])?$_POST['date']:"";
$date2=isset($_POST['date2'])?$_POST['date2']:"";
setlocale(LC_TIME, "fr_FR.utf-8");
  //création de la requête SQL
$sql= "INSERT INTO `Formation` (`idFormation`, `nom`, `date`, `date2`) VALUES (' ', '$nom', '".strftime('%A %d %B %Y', strtotime($date))."', '$date2');";


       

  $requete = mysql_query($sql) or die( mysql_error() ) ;

if($requete)
  {
    echo("La formation a été créé") ;
  }
  else
  {
    echo("La formation n'a pas été créé") ;
  } 
?>
Il manquait probablement un ' dans ta requète
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 167 Messages

14 mai 2013, 09:44

J'ai essayé, l'insertion se fait mais aucun changement dans le format de la date...

Mammouth du PHP | 619 Messages

14 mai 2013, 10:13

Bonjour,

tu peux nous donne les valeurs de $date et $date2 stp

Eléphant du PHP | 167 Messages

14 mai 2013, 10:19

Pour l'instant je ne teste que $date
Dans mon input, j'ai 20/05/2013. J'ai peut-être pas compris mais c'est ce que vous me demander ?

Mammouth du PHP | 619 Messages

14 mai 2013, 10:26

Bonjour,

tu peux essaie avec cette date pour voir 05/25/2013 stp

Eléphant du PHP | 167 Messages

14 mai 2013, 10:31

Toujours rien...

Mammouth du PHP | 619 Messages

14 mai 2013, 10:37

Bonjour,

tu as bien mi mm/jj/aaaa juste pour etre sur :p

car moi cela marche
$date=strftime("%A %d %B %Y", strtotime("05/25/2013")) ;
echo $date;
affiche : Saturday 25 May 2013

Mammouth du PHP | 619 Messages

14 mai 2013, 10:42

si je mets

setlocale(LC_TIME, "fr_FR.utf-8");

samedi 25 mai 2013 ;)

Eléphant du PHP | 167 Messages

14 mai 2013, 10:49

Dans formulaire c'est ce format là qu'il prend 2013-05-04

Eléphant du PHP | 167 Messages

14 mai 2013, 10:50

Dans formulaire c'est ce format là qu'il prend 2013-05-04 et moi je veux pouvoir insérer de cette façon 04/05/2013

Mammouth du PHP | 619 Messages

14 mai 2013, 10:51

Bonjour,

cela marche aussi
setlocale(LC_TIME, "fr_FR.utf-8");
$date='2013-05-04';

$d=strftime('%A %d %B %Y', strtotime($date));
echo $d;
samedi 04 mai 2013

Mammouth du PHP | 619 Messages

14 mai 2013, 10:53

Test ce code
<?php 

  include("connexion.php");
$nom=isset($_POST['nom'])?$_POST['nom']:"";
$date=isset($_POST['date'])?$_POST['date']:"";
$date2=isset($_POST['date2'])?$_POST['date2']:"";
setlocale(LC_TIME, "fr_FR.utf-8");

$d=strftime('%A %d %B %Y', strtotime($date));

$sql= "INSERT INTO `Formation` (`idFormation`, `nom`, `date`, `date2`) VALUES (' ', '$nom', '$d', '$date2');";


       

  $requete = mysql_query($sql) or die( mysql_error() ) ;

if($requete)
  {
    echo("La formation a été créé") ;
  }
  else
  {
    echo("La formation n'a pas été créé") ;
  } 
?>
si ca marche pas merci de poster la structure de la table :)