fork download
  1. <?php
  2. // Nutro as variáveis com o mesmo valor e o mesmo tipo de Type
  3. // Mas uma de forma direta e outra via uma function.
  4. $A = 1.01694444444; // Esta dá o retorno errado da function Func_1
  5. $B = Func_2('01:01:01'); // Esta dá o retorno correto da function Func_1
  6.  
  7. echo $A . '<br />' . $B;
  8.  
  9. echo "<br /><br />";
  10.  
  11. // Mas o resultado dos cálculos da function abaixo é diferente
  12. echo Func_1($A) . '<br />' . Func_1($B);
  13.  
  14. function Func_2($time){
  15. $hms = explode(":", $time);
  16. return ($hms[0] + ($hms[1]/60) + ($hms[2]/3600));
  17. }
  18.  
  19. function Func_1($dec){
  20. $seconds = round($dec * 3600);
  21. $hours = floor($dec);
  22. $seconds -= $hours * 3600;
  23. $minutes = floor($seconds / 60);
  24. $seconds -= $minutes * 60;
  25. return lz($hours).":".lz($minutes).":".lz($seconds);
  26. }
  27.  
  28. function lz($num){
  29. return (strlen($num) < 2) ? "0{$num}" : $num;
  30. }
  31. ?>
Success #stdin #stdout 0.01s 23536KB
stdin
Standard input is empty
stdout
1.01694444444<br />1.0169444444444<br /><br />01:01:01<br />01:01:01