Position actuelle: Accueil> Derniers articles> Comment convertir le tableau retourné en horodatage? Part des conseils pratiques PHP

Comment convertir le tableau retourné en horodatage? Part des conseils pratiques PHP

gitbox 2025-06-17

Dans la programmation PHP, nous rencontrons souvent la nécessité d'obtenir l'heure actuelle ou l'heure de fonctionnement. La fonction getTimeOfday () est une fonction de temps très utile construite en php. Il renvoie un tableau associatif contenant les informations de temps actuelles. Ce tableau contient des informations de temps au niveau de la microseconde, mais il ne renvoie pas directement un horodatage UNIX. Si nous voulons le convertir au format d'horodatage, un traitement est encore nécessaire. Cet article partagera comment convertir le tableau renvoyé par gettimeofday () en un horodat Unix.

1. La structure du tableau renvoyée par gettimeofday ()

Tout d'abord, comprenons la structure du tableau renvoyé par getTimeOfday () . Cette fonction renvoie un tableau associatif avec la structure suivante:

 <span><span><span class="hljs-keyword">array</span></span><span>(
    </span><span><span class="hljs-string">"sec"</span></span><span> =&gt; Le nombre de secondes de l&#39;heure actuelle,    </span><span><span class="hljs-comment">// depuis1970Année1lune1Nombre de secondes de jour en jour</span></span><span>
    </span><span><span class="hljs-string">"usec"</span></span><span> =&gt; Partie microsecondes,         </span><span><span class="hljs-comment">// Un petit nombre de secondes,范围depuis0arriver999999</span></span><span>
    </span><span><span class="hljs-string">"minuteswest"</span></span><span> =&gt; Déviation de fuseau horaire local, </span><span><span class="hljs-comment">// Facultatif</span></span><span>
    </span><span><span class="hljs-string">"dsttime"</span></span><span> =&gt; Indication d&#39;heure d&#39;été,    </span><span><span class="hljs-comment">// Facultatif</span></span><span>
)
</span></span>

2. Obtenez l'horodatage actuel

SEC représente le nombre de secondes du 1er janvier 1970 à l'heure actuelle, et USEC représente la partie microsecondes. Nous voulons fusionner ces deux parties en horodatage, qui peut généralement être obtenu en convertissant SEC en secondes, puis en divisant USEC de 1 000 000 (c'est-à-dire comment les microsecondes sont converties en secondes).

3. Exemple de code: comment convertir le tableau renvoyé par gettimeofday ()

Voici un exemple de code PHP pour convertir le tableau renvoyé par getTimeOfday () en un horodat Unix:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Obtenir les informations de temps actuels</span></span><span>
</span><span><span class="hljs-variable">$time_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gettimeofday</span></span><span>();

</span><span><span class="hljs-comment">// Calculez l&#39;horodatage</span></span><span>
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-variable">$time_info</span></span><span>[</span><span><span class="hljs-string">'sec'</span></span><span>] + (</span><span><span class="hljs-variable">$time_info</span></span><span>[</span><span><span class="hljs-string">'usec'</span></span><span>] / </span><span><span class="hljs-number">1000000</span></span><span>);

</span><span><span class="hljs-comment">// Horodatage de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Horodatage actuel: "</span></span><span> . </span><span><span class="hljs-variable">$timestamp</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans le code ci-dessus:

  • $ time_info ['sec'] obtient le nombre actuel de secondes.

  • $ time_info ['usec'] obtient le nombre actuel de microsecondes.

  • En divisant le nombre de microsecondes de 1 000 000, nous le convertissons en une partie fractionnaire de la seconde, et nous nous retrouvons avec un horodatage Unix flottant.

4. Choses à noter

  1. Précision du temps:
    Étant donné que le temps au niveau de la microseconde est inclus, l'horodatage retourné est un nombre flottant représentant la combinaison de secondes et de microsecondes. Vous pouvez conserver le nombre de décimales en fonction des besoins réels, par exemple, en utilisant la fonction ronde () pour arrondi le résultat.

  2. Time et temps d'été: l'heure d'été:
    La fonction gettimeofday () renvoie le résultat en fonction de l'heure locale du serveur. Si vous devez gérer les problèmes d'écart du fuseau horaire ou d'été, vous devrez peut-être également combiner d'autres fonctions telles que date_default_timezone_set () pour définir le fuseau horaire ou les objets du fuseau horaire pour gérer le temps plus précisément.

  3. performance:
    Les horodatages au niveau microseconde sont très importants pour certaines applications haute performance, en particulier lors de la comparaison ou de la journalisation des horodatage. Si vous n'avez pas besoin de précision microseconde, envisagez d'utiliser la fonction Time () , qui renvoie directement un horodatage UNIX au deuxième niveau.

5. Résumé

Les informations de temps obtenues via GetTimeOfday () contient une granularité de temps plus raffinée et conviennent aux scénarios où des opérations de temps de haute précision sont nécessaires. Bien que le résultat renvoyé soit un tableau, avec des opérations mathématiques simples, nous pouvons facilement le convertir en un horodatage UNIX. Avec cette compétence maîtrisée, vous pouvez gérer plus efficacement les fonctionnalités liées au temps dans PHP.