Как преобразовать строку «ЧЧ: ММ: СС» в секунды с помощью PHP? - PullRequest
7 голосов
/ 05 января 2011

Есть ли собственный способ сделать "HH:MM:SS" to seconds с PHP 5.3, вместо того, чтобы разбивать двоеточие и умножать в каждом разделе соответствующее число для вычисления секунд?


Например, в Python вы можете сделать:

string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;

Ответы [ 4 ]

24 голосов
/ 05 января 2011

Быстрый способ:

echo strtotime('01:00:00') - strtotime('TODAY'); // 3600
7 голосов
/ 05 января 2011

Это должно сработать:

list($hours,$mins,$secs) = explode(':',$time);
$seconds = mktime($hours,$mins,$secs) - mktime(0,0,0);
4 голосов
/ 02 января 2014

Я думаю, самый простой метод будет использовать strtotime() функцию:

$time = '21:30:10';
$seconds = strtotime("1970-01-01 $time UTC");
echo $seconds;

демо


Функция date_parse() также может использоваться для анализа даты и времени:

$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];

демо

2 голосов
/ 05 января 2011

К сожалению, нет - поскольку PHP не является строго типизированным, нет понятия типа времени и, следовательно, нет средств для преобразования между такой строкой и значением «секунд».

Таким образом, на практике люди часторазбить строку и умножить каждый раздел, как вы упомянули.

...