Come convertire una “HH: SS: MM” stringa da secondi con PHP?
-
25-09-2019 - |
Domanda
C'è un modo nativo di fare "HH:MM:SS" to seconds
con PHP 5.3 piuttosto che fare una spaccatura sul colon e di multipling fuori ogni sezione il numero rilevante per il calcolo dei secondi?
Per esempio in Python si può fare:
string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;
Soluzione
Il modo più rapido:
echo strtotime('01:00:00') - strtotime('TODAY'); // 3600
Altri suggerimenti
Questo dovrebbe fare il trucco:
list($hours,$mins,$secs) = explode(':',$time);
$seconds = mktime($hours,$mins,$secs) - mktime(0,0,0);
Credo che la metodo più semplice potrebbe essere quella di utilizzare la funzione strtotime()
:
$time = '21:30:10';
$seconds = strtotime("1970-01-01 $time UTC");
echo $seconds;
date_parse()
può essere utilizzato anche per la data e l'ora di analisi:
$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];
Purtroppo -. Non come PHP è fortemente tipizzato non c'è alcun concetto di un tipo di tempo e, quindi, nessun mezzo per la conversione tra un tale stringa e un valore "secondi"
In quanto tale, in pratica le persone spesso dividere la stringa e si moltiplicano fuori ogni sezione come lei ha ricordato.