Dường như microtime()
này được hiển thị lạ vì PHP có một ngưỡng, ở hai bên trong đó nó sẽ hiển thị hoặc là một số trong ký hiệu khoa học hoặc một ký hiệu thập phân. Cả hai đều là "phao" về mặt kỹ thuật (see documentation).
Dường như ngưỡng này ở đâu đó trong khoảng từ 0,8 giây đến 0,9 giây; ít nhất đó là những gì các bài kiểm tra của tôi kết luận. Sử dụng mã sau đây sẽ hiển thị ký hiệu khoa học:
$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . ($end4 - $start4) . '<br />';
Nhưng nếu chúng tôi thay đổi thời gian chờ thành sleep(0.9)
, số thập phân được tạo. Điều này có thể hoặc có thể không phải là trường hợp trên tất cả các hệ thống hoặc cài đặt, nhưng điều này ít nhất là những gì thử nghiệm của tôi cho thấy.
Bạn có thể chống lại điều này cho mình bằng cách sử dụng sprintf()
chức năng, như thế này:
$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . sprintf('%f', $end4 - $start4) . '<br />';
này sẽ luôn hiển thị thời gian dạng số thập phân.
Nguồn
2009-08-21 04:37:09
Bạn đang sử dụng PHP4 hoặc PHP5? –
Không có gì lạ về 2.69412994385E-5, ngoại trừ việc nó hàm ý một phép đo với độ chính xác femtosecond. 27E-6 hoặc 27us sẽ dễ đọc hơn và có lẽ thực tế hơn. – pavium