Autor Zpráva
Exkalibr
Profil *
Na Windows XP, PHP Version 5.4.16 mám problém, že mi nejde změřit čas s přesností na mikrosekundy. Mám sice funkci,
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
ale do dává ms. Ale na starých PHP 4 to myslím jelo. Žádné jiné php řešení není?
Kajman
Profil
I kdyby jste našel chybu v php 5.4, tak ta verze není pět let podporovaná, nikdo tam už chybu neopraví a nedává smysl pro ni programovat. Nikdo rozumný si ji na server nenasadí.

Zkuste si vypsat, co vrací microtime jako string. Tipnul bych, že tam bude více míst, ale přijde se o ně tím sčítáním s velkým počtem sekund a narazí se na omezení dané přesností floatu. Pokud tomu tak je, tak si můžete vracet zvlášť počet sekund a zvlášť desetinnou část. Při porovnání času pak odečíst sekundy od sebe (tím tam nebude takové velké číslo a zbyde místo na další cifry na konci) a pak teprve k tomu přičíst a odečíst desetinné části.
www.php.net/manual/en/language.types.float.php
Keeehi
Profil
Kajman:
I kdyby jste našel chybu v php 5.4, tak ta verze není pět let podporovaná, nikdo tam už chybu neopraví a nedává smysl pro ni programovat. Nikdo rozumný si ji na server nenasadí.
A to samé samozřejmě platí i pro Windiws XP.
Exkalibr
Profil *
Keeehi:
Tak logicky, když mám Windows XP, wamp 2.4 tak jinou vyšší nenainstaluji.
Kajman
Profil
Tak logicky nedává smysl něco vyvíjet na zastaralé a nepodporované sw základně. Ani u ní řešit milisekundy natož mikrosekundy.
Exkalibr
Profil *
Kajman:
Tobě to jakožto nezasvěcenému smysl dávat nemůže. Mám své důvody, proč to tak je a proč to tak zůstane.


function microtime_arr(&$sec, &$usec) {
  list($usec, $sec) = explode(" ", microtime());
  return array($sec, $usec);
}

Dík

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0