Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/09/2008, 13:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: error de php o mio??

Cita:
Iniciado por killerangel Ver Mensaje
Inicio: 0.81724600 1222015874
.....
Final: 0.51139500 1222015875
tiempo de pagina-0.305851....?????
Ajá! Qué versión de PHP tienes? La función microtime() acepta un parámetro sólo desde PHP 5.0.0. Al parecer tú tienes una versión inferior (4.x). Con PHP 5 deberías obtener algo como
Código:
Inicio: 1222025608.23

a1: Primer bloque es más rápido =2882
a2: Segundo bloque es más rápido =2458
a3: Ambos bloques son iguales =4661
Final: 1222025609.15
tiempo de pagina0.916235923767
Ese parámetro opcional de la función microtime() disponible desde PHP5 permite devolver un valor tipo float. Si no se define este parámetro o la versión de PHP es inferior a 5 obtienes un valor consistente en dos cifras, la primera corresponde a la fracciónde un segundo expresada en microsegundos y la segunda al número de segundos. Es por eso que las restas no son consistentes. Revisa el manula de PHP para la función microtime(), en el primer ejemplo explican como obtener la diferencia de dos marcas de tiempo cuando el formato devuelto es el de PHP4.

Saludos,

EDITO: Para que veas el diferente comprotamiento en ambas versiones mira este código. Como ya te dije, si microtime() no tiene argumentos definidos bajo PHP5, simulará el comportamiento que tiene en PHP4
Código php:
Ver original
  1. <?php
  2.  
  3. $Ti4 = microtime();
  4. $Ti5 = microtime(true);
  5. echo "microtime() PHP4: $Ti4<br />";
  6. echo "microtime() PHP5: $Ti5<br />";
  7.  
  8. ?>
Obtienes:
Código:
microtime() PHP4: 0.32813300 1222026315
microtime(true) PHP5: 1222026315.33
Como verás la parte entera del float devuelto por PHP5 (1222026315) coincide con la segunda cifra del resultado devuelto en PHP4 (1222026315), y la parte decimal en PHP5 (.33) es un redondeado a dos dígitos de la primera cifra bajo PHP4 (.32813300)


Última edición por okram; 21/09/2008 a las 13:48