Comment obtenir l'horodatage actuel en php avec une précision en millisecondes

小云云
Libérer: 2023-03-21 12:42:01
original
13600 Les gens l'ont consulté

PHP n'a pas sa propre fonction pour obtenir des horodatages en millisecondes, mais il fournit une fonction microtime() Si elle est appelée sans paramètres facultatifs, cette fonction renvoie une chaîne au format "msec sec où sec". le nombre de secondes depuis l'époque Unix (0:00:00 le 1er janvier 1970 GMT) et msec est la partie microseconde. Les deux parties de la chaîne sont renvoyées en secondes.

<?php
echo microtime();
//输出结果是
//0.25139300 1138197510
Copier après la connexion

Notez que le résultat est divisé en deux parties, c'est-à-dire que la première moitié est en millisecondes (mais l'unité est la seconde) et la seconde moitié est la seconde.
Maintenant, nous apportons des modifications sur cette base, comme suit :

<?php
list($msec, $sec) = explode(&#39; &#39;, microtime());
$msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
这样就可以了,$msectime就是当前的毫秒数!可以将这两行封装成一个函数方便使用。
<?php
//返回当前的毫秒时间戳
function msectime() {
  list($msec, $sec) = explode(&#39; &#39;, microtime());
  $msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
}
Copier après la connexion

Remarque : sprintf('%.0f', $num) génère un nombre à virgule flottante sans partie décimale

Le problème n'est pas encore terminé. Après avoir modifié l'horodatage au niveau de la milliseconde, lorsque j'ai à nouveau mis à jour les données de la base de données, cela a provoqué une erreur hors de portée. Il s'avère que j'ai utilisé le type int dans la base de données. pour stocker le deuxième niveau obtenu par la fonction time(). La plage de stockage de l'horodatage est suffisante. S'il est modifié au niveau de la milliseconde, il doit être modifié en type BIGINT.

Type entier Octets Plage (signée) Plage (non signée) Utilisation

TINYINT 1 octet (-128, 127)                     (0, 255)                                                                                                                                                                                                                                      >SMALLINT 2 octets (-32 768 , 32 767) (0, 65 535) Grande valeur entière

MEDIUMINT 3 octets (-8 388 608, 8 388 607) (0, 16 777 215) Grande valeur entière

INT ou INTEGER 4 octets ( -2 147 483 648, 2 147 483 647) (0, 4 294 967 295) Grande valeur entière

BIGINT 8 octets (-9 233 372 036 854 775 808, 9 223 372 036 854 775 8 07) ( 0, 18 446 744 073 709 551 615) Valeur entière extrêmement grande

Recommandations associées :

implémentation de php Comment obtenir l'horodatage actuel en millisecondes

Explication détaillée de la fonction PHP d'obtention de l'horodatage actuel

php calcule la différence de temps entre deux horodatages Deux méthodes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal