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;

Foi útil?

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;

demonstração


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

demonstração

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
scroll top