424 votes

Comment obtenir l'heure actuelle en millisecondes en PHP?

time() est en secondes - y en a-t-il une en millisecondes?

667voto

this.lau_ Points 23290

La réponse courte est:

 $milliseconds = round(microtime(true) * 1000);
 

111voto

KennyTM Points 232647

Utiliser microtime(). Cette fonction retourne une chaîne de caractères séparés par un espace. La première partie est la partie fractionnaire de secondes, la deuxième partie est la partie intégrante. Pass en true pour obtenir un numéro:

var_dump(microtime());       // string(21) "0.89115400 1283846202"
var_dump(microtime(true));   // float(1283846202.89)

Méfiez-vous de la perte de précision due si vous utilisez microtime(true).

Il est également gettimeofday() qui retourne le nombre de microsecondes partie comme un entier.

var_dump(gettimeofday());
/*
array(4) {
  ["sec"]=>
  int(1283846202)
  ["usec"]=>
  int(891199)
  ["minuteswest"]=>
  int(-60)
  ["dsttime"]=>
  int(1)
}
*/

49voto

Andrew Moore Points 49765

Comme d'autres l'ont déjà indiqué, vous pouvez utiliser microtime() pour obtenir une précision en millisecondes sur les horodatages.

D'après vos commentaires, vous semblez vouloir l'utiliser comme horodatage UNIX de haute précision. Quelque chose comme DateTime.Now.Ticks dans le monde .NET.

Vous pouvez utiliser la fonction suivante pour le faire:

 function millitime() {
  $microtime = microtime();
  $comps = explode(' ', $microtime);

  // Note: Using a string here to prevent loss of precision
  // in case of "overflow" (PHP converts it to a double)
  return sprintf('%d%03d', $comps[1], $comps[0] * 1000);
}
 

14voto

Alix Axel Points 63455

Utilisez microtime(true) en PHP 5, ou la modification suivante en PHP 4:

 array_sum(explode(' ', microtime()));
 

Un moyen portable d'écrire ce code serait:

 function getMicrotime()
{
    if (version_compare(PHP_VERSION, '5.0.0', '<'))
    {
        return array_sum(explode(' ', microtime()));
    }

    return microtime(true);
}
 

5voto

Chris Heald Points 28814

Essayez le microtime .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X