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;

È stato utile?

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;

demo


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'];

demo

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top