Page 1 sur 1

Addition de DateTime ?

Posté : 26 avr. 2013, 22:58
par JP1548
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.

Re: Addition de DateTime ?

Posté : 26 avr. 2013, 23:05
par moogli
salut,

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


@+

Re: Addition de DateTime ?

Posté : 27 avr. 2013, 08:27
par JP1548
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.

Re: Addition de DateTime ?

Posté : 27 avr. 2013, 22:59
par moogli
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.

@+

Re: Addition de DateTime ?

Posté : 30 avr. 2013, 22:19
par JP1548
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.

Re: Addition de DateTime ?

Posté : 30 avr. 2013, 22:52
par nicolas
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 !

Re: Addition de DateTime ?

Posté : 02 mai 2013, 22:27
par JP1548
Bonsoir,

Merci à tous de votre aide .

Bien à vous.

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