Maison > base de données > tutoriel mysql > Comment calculer la somme des variables de temps en PHP lorsqu'elles s'étendent sur plusieurs jours ?

Comment calculer la somme des variables de temps en PHP lorsqu'elles s'étendent sur plusieurs jours ?

Barbara Streisand
Libérer: 2024-10-27 15:24:02
original
584 Les gens l'ont consulté

How to Calculate the Sum of Time Variables in PHP When They Span Multiple Days?

Calcul de la somme des variables temporelles en PHP

Dans votre application PHP, vous pouvez rencontrer le besoin d'effectuer des opérations arithmétiques sur des variables temporelles. Explorons un scénario spécifique dans lequel vous souhaitez déterminer la somme de deux variables temporelles, représentées sous forme de chaînes au format "HH:MM:SS".

Question :

Comment ajouter deux variables temporelles en PHP ?

Réponse :

Pour additionner correctement deux variables temporelles en PHP, nous devons les convertir en horodatages Unix à l'aide de l'outil Fonction strtotime(). Cependant, cette conversion introduit une divergence mineure. Plus précisément, la fonction strtotime() interprète les heures comme étant comprises dans la journée en cours. Par conséquent, lors de la conversion de deux heures appartenant à des jours différents, nous devons ajuster l'un des horodatages pour garantir une somme correcte.

Solution :

  1. Convertissez $time1 et $time2 en horodatages Unix à l'aide de strtotime().

    <code class="php">$timestamp1 = strtotime($time1);
    $timestamp2 = strtotime($time2);</code>
    Copier après la connexion
  2. Calculez la différence entre les secondes partagées par $time1 et $time2. Cette différence peut être calculée en soustrayant strtotime('00:00:00'), qui représente minuit, de l'horodatage précédent.

    <code class="php">$seconds_difference = min($timestamp1, $timestamp2) - strtotime('00:00:00');</code>
    Copier après la connexion
  3. Ajustez l'horodatage antérieur en soustrayant le $ seconds_difference.

    <code class="php">if ($timestamp1 < $timestamp2) {
       $timestamp1 -= $seconds_difference;
    } else {
       $timestamp2 -= $seconds_difference;
    }</code>
    Copier après la connexion
  4. Ajoutez les horodatages ajustés ensemble.

    <code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
    Copier après la connexion
  5. Convertissez la somme de l'horodatage en "HH:MM : SS" en utilisant date().

    <code class="php">$result = date('H:i:s', $timestamp_sum);</code>
    Copier après la connexion

Exemple :

Utilisation des valeurs fournies de $time1 = "15:20 : 00" et $time2 = "00:30:00", la solution ci-dessus donnera :

<code class="php">$timestamp1 = strtotime('15:20:00'); // 55200
$timestamp2 = strtotime('00:30:00'); // 1800
$seconds_difference = min(55200, 1800) - strtotime('00:00:00'); // 1800
$timestamp1 -= $seconds_difference; // 55200 - 1800 = 53400
$timestamp_sum = $timestamp1 + $timestamp2; // 53400 + 1800 = 55200
$result = date('H:i:s', $timestamp_sum); // "15:50:00"</code>
Copier après la connexion

Par conséquent, la somme de $time1 et $time2 est "15:50:00".

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal