Contamos con tu ayuda para difundir nuestros tutoriales referente a las ciencias de la computación.
Solución:
Puede imprimir menos dígitos porque es un valor flotante. Así que si consigues 1234.0005
, que `.0005 en realidad significa 500 microsegundos. Los ceros después del 5 se pierden porque todavía es un valor flotante sin formato.
La función microtime
se basa en la llamada al sistema gettimeofday()
, que tampoco es precisa al microsegundo. Por lo general, tiene una precisión de 10 microsegundos. Consulte también Linux: se garantiza que gettimeofday () tendrá una resolución de microsegundos.
-editar- Veo que las especificaciones en su pregunta han cambiado de microsegundos a milisegundos.
Para obtener el valor flotante que tiene como un número entero, puede multiplicar por un valor. El valor flotante representa segundos. Multiplique por 1000 para obtener milisegundos o 1,000,000 para obtener microsegundos. Dado que las especificaciones (ahora) dicen milisegundos, debe multiplicar por 1000. 10k le dará una precisión de 1 / 10ms = 100μs. Un milisegundo es una milésima de segundo. Un microsegundo es una millonésima de segundo.
En pocas palabras, para obtener el tiempo en milisegundos enteros, use esto:
$milliseconds = intval(microtime(true) * 1000);
Nota: hay una razón por la que obtiene el tiempo como string o un flotador por defecto. La razón es que en sistemas de 32 bits, el número entero de PHP también es de 32 bits y no es lo suficientemente grande para contener la marca de tiempo, incluidos milisegundos y microsegundos. Por lo tanto, esta solución solo funcionará bien en un sistema de 64 bits.
valoraciones y comentarios
Acuérdate de que te brindamos la opción de reseñar si te fue de ayuda.