fork download
  1. <?php
  2.  
  3. function convert($value)
  4. {
  5. if (preg_match("/(((?P<hours>\d+)\:)?(?P<minutes>\d{1,2})\:)?(?P<seconds>\d{1,2})(\.(?P<milis>\d+))?/", $value, $matches))
  6. {
  7. $hours = intval($matches["hours"]);
  8. $minutes = intval($matches["minutes"]);
  9. $seconds = intval($matches["seconds"]);
  10. $milis = isset($matches["milis"]) ? intval($matches["milis"]) : 0;
  11.  
  12. return sprintf("%d.%d", $hours * 3600 + $minutes * 60 + $seconds, $milis);
  13. }
  14.  
  15. return false;
  16. }
  17.  
  18. // Entrada: horas:minutos:segundos.milis
  19. echo convert("123:12:42.9"), PHP_EOL; // 443562.9
  20.  
  21. // Entrada: horas:minutos:segundos.milis
  22. echo convert("01:20:03.7345"), PHP_EOL; // 4803.7345
  23.  
  24. // Entrada: horas:minutos:segundos.milis
  25. echo convert("0:01:56.23"), PHP_EOL; // 116.23
  26.  
  27. // Entrada: minutos:segundos.milis
  28. echo convert("00:05.570"), PHP_EOL; // 5.570
  29.  
  30. // Entrada: minutos:segundos.milis
  31. echo convert("01:09.700"), PHP_EOL; // 69.700
  32.  
  33. // Entrada: minutos:segundos
  34. echo convert("00:05"), PHP_EOL; // 5.0
  35.  
  36. // Entrada: segundos.milis
  37. echo convert("4.55"), PHP_EOL; // 4.55
  38.  
  39. // Entrada: segundos
  40. echo convert("12"), PHP_EOL; // 12.0
Success #stdin #stdout 0.01s 82944KB
stdin
Standard input is empty
stdout
443562.9
4803.7345
116.23
5.570
69.700
5.0
4.55
12.0