Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    inserire data-ora attuali su tabella db

    Ciao!
    devo inserire la data e l'ora attuali (cioè quelli relativi al momento in cui viene effettuato l'inserimento) in un campo di una tabella nel mio db.
    Allora, leggendo le varie funzioni di php presenti nel manuale ho pensato di usare time() che mi restituisce il TIMESTAMP attuale..così:

    Codice PHP:
    $timestamp=time();
    $qForm mysql_query("INSERT INTO tabella VALUES('col1','col2','$timestamp')") or die("Query fallita: " mysql_error()); 
    dopodichè, dato che voglio che mi venga mostrata nel formato "gg-mm-aaaa hh:mm" quando la vado a recuperare dal db e la stampo sulla pagina del browser uso il seguente codice:

    Codice PHP:
    $form_sql mysql_query("SELECT (*) FROM tabella") or die("Query fallita: " mysql_error());
    while(
    $form_arr mysql_fetch_array($form_sqlMYSQL_ASSOC)) {
      
    //...
      
    $data_ora=$form_arr['data_form'];
      
    //...
    }
    $data_ora_eu strftime('%c',$data_ora);
    // oppure --> $data_ora_eu = strftime('%d-%b-%G %T',$data_ora);
    echo "Ultima modifica effettuata il: " $data_ora_eu
    Sul db ho provato a impostare il campo dove salvo la data sia come tipo 'TIMESTAMP' sia come 'DATETIME', ma in entrambi i casi mi salva il valore 0000-00-00 00:00:00.

    Inoltre, sul browser, quando stampo la data mi compare il seguente errore: Notice: A non well formed numeric value encountered in ...
    e la scritta: Ultima modifica effettuata il: 01/01/70 01:00:00

  2. #2
    Per il tipo di colonna usa datetime, ed usa timestamp di mysql.

    NOW() restituisce il valore attuale in formato YYYY-mm-dd HH:mm:ss

    Codice PHP:
    $qForm mysql_query("INSERT INTO tabella (col1,col2,timestamp) VALUES ('$valolre_col1','$valore_col2',NOW()) or die ("Query fallita" . mysql_error()); 
    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da fmortara
    Per il tipo di colonna usa datetime, ed usa timestamp di mysql.

    NOW() restituisce il valore attuale in formato YYYY-mm-dd HH:mm:ss

    Codice PHP:
    $qForm mysql_query("INSERT INTO tabella (col1,col2,timestamp) VALUES ('$valolre_col1','$valore_col2',NOW()) or die ("Query fallita" . mysql_error()); 
    ciao!
    grazie per la risposta...allora, l'inserimento sul db avviene corrattemente, però adesso ho dei problemi per formattare la data e l'ora.
    Ho provato così:
    Codice PHP:
    $data_ora=$form_arr['data_form']; // valore estratto dal db con mysql_fetch_array
    setlocale(LC_ALL'ita'); 
    $data_ora_eu strftime('%c',$data_ora);
    echo 
    "Ultima modifica effettuata il: " $data_ora_eu
    però mi visualizza sempre l'errore sopra: Notice: A non well formed numeric value encountered in ...
    e la scritta: Ultima modifica effettuata il: 01/01/70 01:33:30

    dove sbaglio? eppure la procedura dovrebbe essere questa..

  4. #4
    Originariamente inviato da pape86
    ciao!
    grazie per la risposta...allora, l'inserimento sul db avviene corrattemente, però adesso ho dei problemi per formattare la data e l'ora.
    Ho provato così:
    Codice PHP:
    $data_ora=$form_arr['data_form']; // valore estratto dal db con mysql_fetch_array
    setlocale(LC_ALL'ita'); 
    $data_ora_eu strftime('%c',$data_ora);
    echo 
    "Ultima modifica effettuata il: " $data_ora_eu
    però mi visualizza sempre l'errore sopra: Notice: A non well formed numeric value encountered in ...
    e la scritta: Ultima modifica effettuata il: 01/01/70 01:33:30

    dove sbaglio? eppure la procedura dovrebbe essere questa..
    SELECT DATE_FORMAT()
    Ciao!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da fmortara
    SELECT DATE_FORMAT()
    allora, leggendo il manuale dovrei inserire questa funzione:
    DATE_FORMAT(format_me, format_instructions)
    es. SELECT full_name, DATE_FORMAT(birthdate, '%W %D %M %Y') FROM Users WHERE birthdate <> '0000-00-00';

    allora ho fatto una query simile:

    $form_sql = mysql_query("SELECT col1,col2,DATE_FORMAT(data_form,'%d-%m-%Y %H:%i') FROM tabella") or die("Query fallita: " . mysql_error());

    e funziona.. grazie!
    però mi sembra strano che non riesca con le funzioni di php..
    cioè, anche in questo modo ho letto che si può fare:
    Codice PHP:
    $data_ora=$form_arr['data_form'];
    $time=strtotime('$data_ora');
    $data_ora_eu date('d-m-Y H:i:s');
    echo 
    "Ultima modifica effettuata il: " $data_ora_eu
    ma mi visualizza sempre l'ora attuale formattata, e non l'ora che gli passo io tramite la funzione strtotime! mah..

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 © 2024 vBulletin Solutions, Inc. All rights reserved.