Inserimento data su database MYSQL

  • Creatore Discussione Creatore Discussione paloppa
  • Data di inizio Data di inizio

paloppa

Utente Attivo
26 Feb 2018
68
0
6
31
Salve a tutti, so che la domanda avrà una risposta stupida, ma sto diventando cretino davanti questo (stupido) problema.

Ho un form che faccio compilare agli utenti.
Nel form ho questi campi
NOME
COGNOME
EMAIL
MESSAGGIO
DATA ARRIVO
DATA PARTENZA

Premettendo che nel mio DB gli attributi DATA ARRIVO e DATA PARTENZA sono di tipo DATE, e che quando un utente inserisce la data nel form, la inserisce nel formato gg/mm/aaaa come faccio a prendere la stringa dell'utente e inserirla nel database con formattazione standard(americana) cioè YYYY/mm/dd ???

Ho provato a fare questo , ma il risultato all'interno della tabella , è una data formata da tutti zero , cioè 0000-00-00

PHP:
 $data1=$_POST['data_arrivo']; //data arrivo
        $data2=$_POST['data_partenza']; //data partenza
        
//mi connetto al database
    $connessione=mysqli_connect("localhost","root","","lavoro") or die ("Impossibile connettersi");
        
    
    
//faccio la query per inserire il valore nel DB
    $query= "INSERT INTO messaggio VALUES ('$nome','$cognome',CURDATE(),'$email','$oggetto',STR_TO_DATE( '$data_arrivo', '%Y/%m/%d'),STR_TO_DATE( '$data_partenza', '%y/%m/%d'))";


Il problema è proprio che nel campo data_arrivo e data_partenza nel campo DB mi inserisce la data 0000-00-00



Grazie a tutti anticipatamente per l'aiuto
 
prova così,
PHP:
$data = "27/02/2018";

$dt = DateTime::createFromFormat("d/m/Y", $data);
$dt = $dt->format("Y-m-d");

echo $data . " = " . $dt;

risultato

upload_2018-2-27_17-17-46.png
 

Discussioni simili