Comment ajouter deux plages de dates en PHP
L'ajout de deux plages de dates pour calculer la durée totale des heures et des minutes est un problème pour de nombreuses questions pour les programmeurs PHP. Essayons de comprendre comment procéder.
Description du problème
L'utilisateur souhaite ajouter deux intervalles de date de la manière suivante pour obtenir la durée totale au format heure et minute :
<code class="php">$a = new DateTime('14:25'); $b = new DateTime('17:30'); $interval1 = $a->diff($b); echo "interval 1 : " . $interval1->format("%H:%I"); echo "<br />"; $c = new DateTime('08:00'); $d = new DateTime('13:00'); $interval2 = $c->diff($d); echo "interval 2 : " . $interval2->format("%H:%I"); echo "<br />"; echo "Total interval : " . ($interval1 + $interval2);</code>
Réponses aux questions
PHP n'a pas de surcharge d'opérateurs, donc lors de l'ajout d'objets avec des objets, PHP essaiera d'abord de les convertir en chaînes, mais DateInterval ne prend pas en charge cette opération.
Pour résoudre ce problème, nous devons utiliser une autre méthode :
Exemple de code
Voici un exemple de code utilisant la méthode ci-dessus :
<code class="php">$a = new DateTime('14:25'); $b = new DateTime('17:30'); $interval1 = $a->diff($b); echo "interval 1: " . $interval1->format("%H:%I") . "\n"; $c = new DateTime('08:00'); $d = new DateTime('13:00'); $interval2 = $c->diff($d); echo "interval 2: " . $interval2->format("%H:%I") . "\n"; $e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($interval2); echo "Total interval : " . $f->diff($e)->format("%H:%I") . "\n";</code>
Sortie :
interval 1: 03:05 interval 2: 05:00 Total interval : 08:05
Approche alternative (DateInterval personnalisé)
Si vous souhaitez aller plus loin, vous pouvez également envisager de créer votre propre extension DateInterval et de redéfinir l'opération d'ajout. Il s'agit d'une approche plus avancée qui nécessite une compréhension approfondie du développement d'extensions PHP.
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!