Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Salvare una data nel database

    Salve

    ho un form di iscrizione, vorrei salvare la data al momento dell'iscrizione, ho creato nella tabella del database una riga "timestamp"...
    quando vengono inseriti i dati inserisce una data, ma quando cerco di trasformarla mi accorgo che è sbagliata.

    esempio:

    Codice PHP:
    <?

    echo date("d - n - Y",20050529204849);

    ?>
    risultato : 24 - 5 - 2021

    Ora quando inserisco un record vedo che nella query nel campo della data lui utilizza NOW() è giusto? se no come faccio a cambiarlo?


    Grazie mille
    Fabzine.it: Il blog italiano sulla digital fabrication

  2. #2
    il secondo parametro della funzione date(); è un timestamp, ma non MySql, un timestamp PHP che corrisponde al numero di secondi dal 1.1.1970

    Dunque non devi usare quella funzione, se guardi il valore salvato nel db 20050529204849 vedrai che basta scomporlo ... 2005-05-29 20:48:49

  3. #3
    non ci avevo pensato, grazie
    Fabzine.it: Il blog italiano sulla digital fabrication

  4. #4
    la data nel database va convertita in timestmp di unix (se ho capito bene)

    faccio:

    Codice PHP:
    <?

    include('includes/config.inc.php');

    $data mysql_query("SELECT UNIX_TIMESTAMP(utente_data_iscrizione) AS temp, * FROM chattiamo_utenti WHERE utente_id = 1");

    $data mysql_result($data,0,'utente_data_iscrizione');

    echo 
    date("d - n - Y","$data");

    ?>
    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /xxx/prova.php on line 7
    01 - 1 - 1970

    pero restituisce un errore... dove sbaglio?
    Fabzine.it: Il blog italiano sulla digital fabrication

  5. #5
    anche io ho bisogno della stessa cosa,
    in più, vorrei che un utente possa scrivere 31/05/2005 e non per forza 2005/05/31...

    come posso fare?

    saluti a tutti!!
    Ciao!

  6. #6
    una volta trasformato in unix timestamp credo si possa formattare a piacere...
    Fabzine.it: Il blog italiano sulla digital fabrication

  7. #7
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Fai prima direttamente in mysql:

    SELECT DATE_FORMAT( DATA , '%d/%m/%Y' ) AS DATANUOVA ...

  8. #8
    Originariamente inviato da Teuzzo
    Fai prima direttamente in mysql:

    SELECT DATE_FORMAT( DATA , '%d/%m/%Y' ) AS DATANUOVA ...
    mi potresti spegare meglio??
    non ho capito sul serio...

    e poi, mi faresti anche un esempio pratico...

    io ho una tabella con tanti campi, tra cui delle date!

    vorrei che in inserimento da form l'utente inserisca 31/05/2005 o 31-05-2005.. e che in estrazione avvenga la stessa cosa.
    se ho capito bene, MySQL salva la data comunque in 2005-05-31 ma io posso prenderla e convertirla... giusto?

    ma come si fa?
    Ciao!

  9. #9
    se l'utente ti inserisce la data in questo formato gg/mm/aaaa mySQL non la accetta, dovrai scomporla tu e ricomporla secondo questo formato aaaa-mm-gg

    io ti consiglio di fare 3 diversi campi di testo in cui inserire i 3 rispettivi valori della data e poi la comporrai tu secondo il formato DATE.

    poi per l'estrazione fai come ti ha suggerito Teuzzo:
    codice:
    SELECT DATE_FORMAT( DATA , '%d/%m/%Y' ) AS DATANUOVA
    in questo modo avrai il record DATANUOVA che sarà formattato così: 31/05/2005

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Originariamente inviato da 13manuel84
    se l'utente ti inserisce la data in questo formato gg/mm/aaaa mySQL non la accetta, dovrai scomporla tu e ricomporla secondo questo formato aaaa-mm-gg

    io ti consiglio di fare 3 diversi campi di testo in cui inserire i 3 rispettivi valori della data e poi la comporrai tu secondo il formato DATE.

    poi per l'estrazione fai come ti ha suggerito Teuzzo:
    codice:
    SELECT DATE_FORMAT( DATA , '%d/%m/%Y' ) AS DATANUOVA
    in questo modo avrai il record DATANUOVA che sarà formattato così: 31/05/2005

    sono più confuso di prima...
    Ciao!

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.