conversione orario

Ciao ragazzi,

nella mia tabella ho un campo time i cui valori sono del tipo:

TIME

16:23:04

15:53:37

.........

e così via. Ho necessità che i valori di questo campo siano espressi in secondi che sono trascorsi dopo mezzogiorno. Quindi se ho come valore 13:00:00, dovrò misurare la differenza in secondi tra le 12:00:00 e le 13:00:00...non so se mi sono spiegata.

Come posso procedere?

inviato 6 anni fa
lilux
X 0 X

Memorizzi i valori in una stringa:

$stringa='16:23:04';

Poi, con la funzione 'explode' separi le ore, minuti e secondi:

$stringa=explode(":",$stringa);

Quindi:

$stringa[0] sarà: 16, $stringa[1] sarà: 23 e $stringa[2] sarà: 04

A questo punto sei a cavallo!

risposto 6 anni fa
tigrone
X 0 X

Ci sono tante belle funzioni su data e ora, usiamole....

esempio:

$a = strtotime(date('d/m/Y 12:00:00'));
$b = strtotime(date('d/m/Y 16:03:04'));
$i = $b - $a;

dentro $i c'è quello che ti serve.

risposto 6 anni fa
Massimiliano Arione
X 0 X

Ma io nella mia tabella ho solo il campo TIME e non la data, funziona lo stesso?

Mi diresti la query precisa da lanciare in mysql?

risposto 6 anni fa
lilux
X 0 X

Ma io nella mia tabella ho solo il campo TIME e non la data, funziona lo stesso?

Mi diresti la query precisa da lanciare in mysql?

come ho mostrato nel mio esempio, puoi concatenare l'ora con la data odierna (in realtà puoi metterci una data a piacere).

Ti sconsiglio l'utilizzo di funzioni mysql per implementare una logica, perché perdi in portabilità.

Estrai i dati con una normale query e fai i calcoli in php.

Se poi ti serve il valore dentro la query (per fare ordinamenti o simili), ti conviene aggiungere una colonna e fare il calcolo durante l'inserimento.

risposto 6 anni fa
Massimiliano Arione
X 0 X

ok, ho risolto!  ;)

Ho un altro dubbio: voglio salvare questo risultato e inserirlo nella tabella che ho a disposizione. Ho cominciato col creare un nuovo campo ma non so come inserire i valori ottenuti in questa nuova colonna!  :'(

risposto 6 anni fa
lilux
X 0 X

ok, ho risolto!  ;)

Ho un altro dubbio: voglio salvare questo risultato e inserirlo nella tabella che ho a disposizione. Ho cominciato col creare un nuovo campo ma non so come inserire i valori ottenuti in questa nuova colonna!  :'(

Non sai come fare una insert in un db?  :(

risposto 6 anni fa
Massimiliano Arione
X 0 X

Scusate, abbiate pazienza ma sono agli inizi!

Se faccio insert into nome_tabella + resto della query, mi viene fuori:

[Err] 1136 - Column count doesn't match value count at row 1

perchè ovviamente io voglio inserire solo i valori di una colonna della tabella, dato che gli altri sono già completi. E' questo che non so fare! 

risposto 6 anni fa
lilux
X 0 X

Scusate, abbiate pazienza ma sono agli inizi!

Se faccio insert into nome_tabella + resto della query, mi viene fuori:

[Err] 1136 - Column count doesn't match value count at row 1

perchè ovviamente io voglio inserire solo i valori di una colonna della tabella, dato che gli altri sono già completi. E' questo che non so fare!

Ma allora perché non dai un'occhiata alla documentazione?

Altrimenti come pretendi di imparare quello che non sai?  :P

Puoi specificare le colonne in cui fare le insert: http://dev.mysql.com/doc/refman/5.1/en/insert.html

risposto 6 anni fa
Massimiliano Arione
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda