Position actuelle: Accueil> Derniers articles> Comment calculer les horodatages UNIX pour un fuseau horaire spécifique avec les fonctions Timezone_Name_get et Mktime?

Comment calculer les horodatages UNIX pour un fuseau horaire spécifique avec les fonctions Timezone_Name_get et Mktime?

M66 2025-06-27

Dans PHP, la manipulation des fuseaux horaires et des horodatages est une tâche courante. Timezone_name_get et mktime sont deux fonctions très utiles qui peuvent nous aider à calculer les horodatages UNIX sous un fuseau horaire spécifique. Cet article expliquera comment utiliser ces deux fonctions pour implémenter cette fonction et vous fournir un exemple simple de code.

1. Comprendre la fonction Timezone_name_get

La fonction timezone_name_get renvoie le nom du fuseau horaire de l'objet DateTimeZone donné. Ce nom de fuseau horaire est généralement dans un format région / ville, comme l'Amérique / New_york ou l'Asie / Shanghai .

Exemple d'utilisation:

 $timezone = new DateTimeZone('Asia/Shanghai');
echo timezone_name_get($timezone);

Résultat de sortie:

 Asia/Shanghai

2. Comprendre la fonction mktime

La fonction mktime est utilisée pour calculer un horodatage UNIX pour une période spécifique. Il accepte plusieurs paramètres pour spécifier l'année, le mois, le jour, l'heure, la minute et le deuxième du temps. Cette fonction est généralement utilisée pour convertir le temps local en horodatage Unix.

Exemple d'utilisation:

 $timestamp = mktime(14, 30, 0, 6, 12, 2025);
echo $timestamp;

Le résultat de la sortie est un horodat Unix à 14h30 le 12 juin 2025.

3. Combiner des horodatages Timezone_Name_get et Mktime pour calculer les horodatages Unix pour un fuseau horaire spécifique

Lors du calcul des horodatages UNIX pour un fuseau horaire spécifique, Timezone_name_get et mktime doivent être utilisés en combinaison. L'idée spécifique est:

  1. Obtenez des informations sur le fuseau horaire via timezone_name_get .

  2. Créez un objet DateTimeZone et définissez-le comme fuseau horaire cible.

  3. Créez un objet DateTime et définissez-le au moment de ce fuseau horaire.

  4. Utilisez la fonction mktime pour convertir l'heure en horodatage Unix.

4. Exemples de code

Voici un exemple complet de code combinant timezone_name_get et mktime pour calculer l'horodatage Unix pour une date et une heure sous un fuseau horaire spécifique (comme Asie / Shanghai ):

 <?php
// Fuseau horaire cible
$timezone = new DateTimeZone('Asia/Shanghai');

// Obtenez le nom du fuseau horaire
$timezone_name = timezone_name_get($timezone);
echo "Fuseau horaire cible: " . $timezone_name . "\n";

// créer DateTime Objet et réglé sur une heure spécifique
$date = new DateTime('2025-06-12 14:30:00', $timezone);

// utiliser mktime Les fonctions le convertissent en Unix Horodatage
$timestamp = mktime($date->format('H'), $date->format('i'), $date->format('s'),
                    $date->format('m'), $date->format('d'), $date->format('Y'));

echo "Correspondant Unix Horodatage: " . $timestamp . "\n";
?>

5. Expliquez le code

  1. Créez un objet DateTimeZone : nous spécifions d'abord le fuseau horaire cible (comme l'Asie / Shanghai ).

  2. Obtenez le nom de fuseau horaire : obtenez le nom de fuseau horaire et sortez-le via Timezone_name_get .

  3. Créer un objet DateTime : le constructeur de l'objet DateTime accepte une chaîne de date-heure et un objet de fuseau horaire. Nous avons fixé l'heure cible (14:30:00 le 12 juin 2025) à cet objet.

  4. Utilisez Mktime pour calculer les horodatages UNIX : Extraire le temps, la minute, le deuxième, le mois, le jour et l'année de l'objet DateTime , passez-le à la fonction Mktime et enfin obtenez l'horodatage Unix.

6. Conclusion

En combinant des fonctions Timezone_Name_get et Mktime , nous pouvons facilement calculer les horodatages UNIX sous un fuseau horaire spécifique. Avec ces compétences maîtrisées, vous pouvez gérer plus précisément les calculs de temps liés aux fuseaux horaires, en particulier dans les applications de zone inter-temps.