Maison >développement back-end >tutoriel php >Comment ajouter deux intervalles de dates en PHP ?

Comment ajouter deux intervalles de dates en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 06:02:301024parcourir

How to Add Two Date Intervals in PHP?

Comment ajouter deux intervalles de dates en PHP

PHP ne prend pas en charge la surcharge des opérateurs. Les objets sont d'abord convertis en chaînes lors de l'utilisation de l'opérateur d'addition ( ). Cependant, DateInterval ne prend pas en charge la conversion de chaîne.

<code class="php">interval 1: 03:05
interval 2: 05:00
Total interval : 08:05</code>

Au lieu de cela, créez un nouvel objet DateTime, utilisez la fonction add() pour ajouter les intervalles et calculez la différence par rapport au point de référence :

<code class="php">$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>

Approche alternative

Compte tenu de la structure de stockage interne de DateInterval, l'étendre et effectuer le calcul manuellement est également possible :

<code class="php">class MyDateInterval extends DateInterval
{
    public static function fromDateInterval(DateInterval $from)
    {
        return new MyDateInterval($from->format('P%yY%dDT%hH%iM%sS'));
    }
                                  
    public function add(DateInterval $interval)
    {
        foreach (str_split('ymdhis') as $prop)
        {
            $this->$prop += $interval->$prop;
        }
    }
}

$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 = MyDateInterval::fromDateInterval($interval1);
$e->add($interval2);
echo "Total interval: " . $e->format("%H:%I") . "\n";</code>

Remarque : Les extensions DateInterval sont possibles avec les 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!

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