2015-07-16 2 views
-4

У меня есть файлы субтитров, в которых у меня есть start_time и end_time, которые отформатированы следующим образом: 00: 38: 42,689, но я не хочу, чтобы у меня была функциональность субтитров, которые работают на миллисекунд, поэтому я хочу преобразовать его в миллисекундах в php.Как преобразовать время в миллисекундах в php

Как я могу это сделать. Благодаря

+0

что вы пробовали? Вы можете разделить строку на «:», а затем умножить каждую часть. Должно быть довольно легко – Unex

+0

Возможный дубликат [Как получить текущее время в миллисекундах в PHP?] (Http://stackoverflow.com/questions/3656713/how-to-get-current-time-in-milliseconds-in- php) –

+0

значит, что ваше значение находится в правильном формате? думаю, нет. –

ответ

3
$string = "00:38:42,689"; 
$time = explode(":", $string); 

$hour = $time[0] * 60 * 60 * 1000; 
$minute = $time[1] * 60 * 1000; 

$second = explode(",", $time[2]); 
$sec = $second[0] * 1000; 
$milisec= $second[1]; 

$result = $hour + $minute + $sec + $milisec; 

echo $result; 
0

Вы можете использовать DateTime класс, чтобы сделать синтаксический анализ и рассчитать оттуда:

$timeString = '00:38:42,689'; 
$dateTime = DateTime::createFromFormat('H:i:s,u', $timeString); 

$milliseconds = 
    $dateTime->format('H') * 60 * 60 * 1000 + // milliseconds in an hour 
    $dateTime->format('i')  * 60 * 1000 + // milliseconds in a minute 
    $dateTime->format('s')   * 1000 + // milliseconds in a second 
    $dateTime->format('u')   /1000; // microseconds in a millisecond 

Пример этого кода here.

Смежные вопросы