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 :
Convertissez $time1 et $time2 en horodatages Unix à l'aide de strtotime().
<code class="php">$timestamp1 = strtotime($time1); $timestamp2 = strtotime($time2);</code>
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>
Ajustez l'horodatage antérieur en soustrayant le $ seconds_difference.
<code class="php">if ($timestamp1 < $timestamp2) { $timestamp1 -= $seconds_difference; } else { $timestamp2 -= $seconds_difference; }</code>
Ajoutez les horodatages ajustés ensemble.
<code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
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!