Nó có thể in ít chữ số hơn, bởi vì nó là một giá trị float. Vì vậy, nếu bạn nhận được 1234.0005
, thì `.0005 thực sự có nghĩa là 500 micro giây. Các số không sau 5 bị mất vì nó vẫn là giá trị float chưa được định dạng.
Chức năng microtime
được dựa trên cuộc gọi hệ thống gettimeofday()
, cũng không chính xác với micro giây. Thông thường nó chính xác đến 10 micro giây. Xem thêm Linux - Is gettimeofday() guaranteed to be of microsecond resolution.
-edit- Tôi thấy thông số đã thay đổi từ micro giây thành mili giây.
Để lấy giá trị float bạn có dưới dạng số nguyên, bạn có thể nhân với giá trị. Giá trị float đại diện cho giây. Nhân với 1000 để nhận được mili giây hoặc 1.000.000 để nhận được micro giây. Vì các thông số kỹ thuật (hiện tại) nói là mili giây, bạn nên nhân với 1000. 10k sẽ cho bạn độ chính xác 1/10ms = 100μs. Một phần nghìn giây là một phần nghìn giây. Một micro giây là một phần triệu giây.
dài truyện ngắn, để có được thời gian trong mili giây số nguyên, sử dụng này:
$milliseconds = round(microtime(true) * 1000);
Lưu ý: có một lý do tại sao bạn nhận được thời gian như là một chuỗi hoặc một phao theo mặc định. Lý do là trên các hệ thống 32 bit, số nguyên của PHP cũng là 32 bit và không đủ lớn để chứa dấu thời gian bao gồm mili giây và micro giây. Vì vậy, giải pháp này sẽ chỉ hoạt động tốt trên hệ thống 64 bit.
bạn cần dấu thời gian trong mili giây hoặc trong micro? tiêu đề nói một điều và câu hỏi thực tế khác là –
nó là làm tròn vấn đề. Các giá trị 0 không được lặp lại, 'str_pad (str_replace (". "," ", Microtime (true)), 14, 0)' – splash58
@AlexAndrei: xin lỗi tôi cần trong vài giây – Vishnu