-3

I have a subtitle files in which i have start_time and end_time which is formatted like this 00:38:42,689 but i don't want this i have functionality of subtitles which work on milliseconds so i want to convert it in milliseconds in php.

How i can get it done. Thanks

Sufyan
  • 506
  • 2
  • 6
  • 18

2 Answers2

5
$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;
Emil
  • 1,786
  • 1
  • 17
  • 22
0

You can use the DateTime class to do the parsing and calculate from there:

$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

Example of this code is here.

Phylogenesis
  • 7,775
  • 19
  • 27