Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Inserimento data e ora da campo formattato

    Ciao a tutti,
    ho cercato qualcosa online, ma senza risultati concreti. Il problema è il seguente: ho un form con un campo nel quale devo inserire la data prelevabile da un calendario in jquery. Quindi nel campo viene inserita la data con questo formato: gg/mm/yyyy. Quando faccio la insert, poichè il campo del database è di tipo DATE, non viene inserito nulla poichè si aspetta un altro tipo di formato.

    Come posso fare ad inserire la data nel campo del db mantenedo questo formato gg/mm/yyyy?


    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi dichiarare il campo del db come varchar(10), ma poi perderai la possibilità di ordinare correttamente in base alla data nel caso dovesse servirti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    Ciao,
    potresti prendere la variabile che contiene la data e modificarla prima dell'inserimento in db:
    Codice PHP:

    $data_da_form
    "31/12/2013";

    $separatore '/';
    $array explode$separatore$data_da_form );

    $data_corretta $array[2].'-'.$array[0].'-'.$array[1];

    echo 
    $data_corretta

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da Satore11
    Ciao,
    potresti prendere la variabile che contiene la data e modificarla prima dell'inserimento in db:
    Codice PHP:

    $data_da_form
    "31/12/2013";

    $separatore '/';
    $array explode$separatore$data_da_form );

    $data_corretta $array[2].'-'.$array[0].'-'.$array[1];

    echo 
    $data_corretta
    Certo, ma non è quello che ha chiesto.
    Da come scrive vuole mantenere il formato gg/mm/aaaa anche sul db.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    non avevo capito...ma è comunque sconsigliato salvare le date in db con campo di tipo diverso da date o date_time, anche perché non si potrebbe usufruire di tutte le funzioni native per manipolare dati con query
    cmq ha entrambe le soluzioni!
    Buona giornata

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da Satore11
    Ciao,
    potresti prendere la variabile che contiene la data e modificarla prima dell'inserimento in db:
    Codice PHP:

    $data_da_form
    "31/12/2013";

    $separatore '/';
    $array explode$separatore$data_da_form );

    $data_corretta $array[2].'-'.$array[0].'-'.$array[1];

    echo 
    $data_corretta
    E' meglio fare il contrario, cioè salvare la data con il formato yyyy/mm/gg. Cosi è possibile ordinare i record per data.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Originariamente inviato da Alhazred
    Certo, ma non è quello che ha chiesto.
    Da come scrive vuole mantenere il formato gg/mm/aaaa anche sul db.

    scusate, mi spiego meglio. Il campo del db è di tipo DATE, ma se cerco di inserire la data così come viene gestita dal form in jquery (dd/mm/yyyy), non inserisce nulla. Lo script in php è corretto perchè cambiando il tipo del campo del db da DATE a VARCHAR, l'inserimento della data funziona correttamente, ma io vorrei che il campo del db rimanda di tipo DATE perchè poi vorrei gestirla con le funzionai sulle date in php.


    Grazie

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Allora devi inserire la data nel formato coerente con il tipo DATE.

    DATE si aspetta una data nel formato yyyy-mm-dd se tu provi ad inserire una data nel formato dd/mm/yyyy, per DATE, quella non è una data corretta, quindi non inserisce niente.

    Occhio, devi anche usare - e non /

  9. #9
    Originariamente inviato da Alhazred
    Allora devi inserire la data nel formato coerente con il tipo DATE.

    DATE si aspetta una data nel formato yyyy-mm-dd se tu provi ad inserire una data nel formato dd/mm/yyyy, per DATE, quella non è una data corretta, quindi non inserisce niente.

    Occhio, devi anche usare - e non /

    Esattamente, devo inserire la data nel formato coerente con il tipo DATE e per fare questo, devo convertire il valore della variabile $data_da_form= "31/12/2013"; in un formato accettabile dal campo di tipo DATE.

    La mia domanda è: come posso convertire il valore della variabile $data_da_form in un valore accettato dal campo di tipo DATE?

    Grazie

  10. #10
    Codice PHP:
    <?php
    $data_da_form 
    "31/12/2013";
    $data_da_form str_replace('/''-'$data_da_form);
    $sqlDate date('Y-m-d'strtotime($data_da_form));
    echo 
    $sqlDate;
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.