Como converter uma string "HH: MM: SS" em segundos com PHP?
-
25-09-2019 - |
Pergunta
Existe uma maneira nativa de fazer "HH:MM:SS" to seconds
com o PHP 5.3 em vez de fazer uma divisão no cólon e multiplicar cada seção o número relevante para calcular os segundos?
Por exemplo, em Python, você pode fazer:
string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;
Solução
A maneira rápida:
echo strtotime('01:00:00') - strtotime('TODAY'); // 3600
Outras dicas
Isso deve fazer o truque:
list($hours,$mins,$secs) = explode(':',$time);
$seconds = mktime($hours,$mins,$secs) - mktime(0,0,0);
Eu acho que o Método mais fácil seria usar strtotime()
função:
$time = '21:30:10';
$seconds = strtotime("1970-01-01 $time UTC");
echo $seconds;
Função date_parse()
Também pode ser usado para a data e hora da análise:
$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];
Infelizmente, não - como o PHP não é fortemente digitado, não há conceito de tipo de tempo e, portanto, não há meios de converter entre essa string e um valor de "segundos".
Como tal, na prática, as pessoas costumam dividir a corda e multiplicar cada seção como você mencionou.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow