Maison  >  Article  >  base de données  >  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
Barbara Streisandoriginal
2024-10-27 15:24:02457parcourir

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>
  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>
  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>
  4. Ajoutez les horodatages ajustés ensemble.

    <code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
  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>

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>

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!

Déclaration:
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