Format de date us-fr avec postdata

Résolu
Bonjour à toutes et à tous,
J'envoi des données provenant d'un formulaire html à un partenaire via la fonction POST date.
Mon probleme c'est que mon partenaire attend un date au format us YYYY-MM-DD et que mon input (name=date_effet) doit rester francais JJ-MM-YYYY

J'ai essayé ceci :

$dateeffet_fr = $_POST['date_effet'];
$dateeffet_us = date('Y-m-d', strtotime(str_replace('/', '-', $dateeffet_fr)));
pour convertir puis

$postdata = http_build_query(
array(
'ip' => $_POST['ip'],
'date_effet' => $_POST['dateeffet_us'],
'etc' => $_POST['etc'],

Pour envoyer
Mais cela ne fonctionne pas.

JE suis dessus depuis ce matin, je ne comprends pas ce qui bloque.
Merci d'avance à tous pour le coup de pouce.

2 réponses

  1. Pour ton probleme, je te conseille de faire ceci:

    // un decoupe la variable:
    $tmp=explode('-',$_POST['date_effet']);
    
    // $tmp est donc un tableau qui contient à chaque iteration, 0=>JJ, 1=>MM, 2=>YYYY
    // il reste plus qu'a réorganiser
    $dateeffet_us=$tmp[2].'/'.$tmp[1].'/'.$tmp[0]
    


    Tu aura dans ton $dateeffet_us la meme date mais au format YYYY/MM/JJ

    Par contre attention, ton $_POST['dateeffet_us'] a deux posibilités:
    1) il provient du formulaire et à donc la valeur contenue à la base dans le formulaire
    2) Il n'existe pas (en effet, $dateeffet_us n'est pas $_POST['dateeffet_us'])

    Si tu veux mettre dateeffet_us dans le post et remplacer le date_effet il faut alors faire:

    $_POST['date_effet']=$dateeffet_us;
    

    1. Merci à toi pour tes explications détaillées, c'est très sympa de ta part
      Bon we
    2. Pas de soucis, mieux vaux détailler que donner une réponse incompréhensible. J'ésoère que cela t'a aidé.
  2. Salut,

    Tu ne précise pas quel est ton problème (message d'erreur? résultat attendu ?)

    Du coup je suppose qu'il y a une erreur dans la construction de ton tableau $postdata : la variable $_POST['dateeffet_us'] n'existe pas, il faut la remplacer par $dateeffet_us.

    Bonne journée