[RESOLU] Addition de DateTime ?

JP1548
Invité n'ayant pas de compte PHPfrance

26 avr. 2013, 22:58

Bonjour,

Pourriez-vous m'aider s'il-vous-plaît, pour additionner deux DateInterval en PHP 5.4 ?

Par exemple, à partir de :
$d1 = new DateTime("2013/04/20 15:30");
$result1 = $d1->diff(new DateTime());

$d2 = new DateTime("2013/04/22 22:00");
$result2 = $d2->diff(new DateTime());


Je souhaiterais faire :
$resultat = $result1 + $result2;
En vous remerciant de votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 avr. 2013, 23:05

salut,

avec la méthode add des objet datetime ? http://fr2.php.net/manual/fr/datetime.add.php


@+
Il en faut peu pour être heureux ......

JP1548
Invité n'ayant pas de compte PHPfrance

27 avr. 2013, 08:27

Bonjour et merci de la réponse,
mais la fonction ajoute la durée de l'objet DateInterval à l'objet DateTime,
or, j'ai 2 DateInterval.

Comment puis-je faire stp ?
Pour me servir de DateTime::add, je ne vois pas comment je pourrais convertir un des DateInterval en DateTime, car ça n'aurait pas de sens !

Merci encore de ton aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 avr. 2013, 22:59

Le plus simple c'est de recréer un datetime a partir de l'un ou l'autre des dateinterval (cf méthode createFromFormat).
ensuite add et tu aura un dateTime exploitable.

par contre je ne sais pas si c'est exactement ce que tu souhiate.

@+
Il en faut peu pour être heureux ......

JP1548
Invité n'ayant pas de compte PHPfrance

30 avr. 2013, 22:19

Bonsoir,

oui, c'est ce que je souhaite. Je veux additionner des différences de dates.

Pour l'instruction :
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
elle ne prend qu'un format de date sous forme d'une chaîne de caractères, par exemple "10/12/2013", mais pas un DateInterval.

Cela me semble normal, sinon, comment PHP reconvertirait-il une différence de dates qui donnerait par exemple : 4 jours 10 heures en j-m-Y ?

Je crois que je vais le jouer à l'ancienne, sans la bibliothèque DateTime...

Merci encore.

Eléphant du PHP | 353 Messages

30 avr. 2013, 22:52

C'est un peu lourd mais on peut le faire avec DateTime et ses amis :
$now = new DateTime();
$ref = clone $now;

$d1 = new DateTime("2013/04/20 15:30");
$result1 = $d1->diff($now);

$d2 = new DateTime("2013/04/22 22:00");
$result2 = $d2->diff($now);

$now->add($result1);
$now->add($result2);
$resultat = $now->diff($ref);
Après il suffit de formater (méthode format) le résultat !

JP1548
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 22:27

Bonsoir,

Merci à tous de votre aide .

Bien à vous.

{ ce sujet peut être clôturé - merci }