Discussion:
Calculer la duree entre 2 dates
(trop ancien pour répondre)
jpwitz
2010-01-25 15:59:04 UTC
Permalink
Bonjour

Je voudrais calculer le temps écoulé entre deux données date extraites
par requête d'un champ date qui se présentent sous la forme par exemple

2010-01-25 12:44:38

lorsque j'utilise la fonction date_diff()

ex: $d=date_diff("2010-01-25 12:44:38" , "2010-01-25 12:44:44");

j'obtiens le message d'erreur:

date_sub() expects parameter 1 to be DateTime

Où se situe l'erreur?

D'autre part, en consultant l'aide, je trouve l'explication suivante:
public DateInterval DateTime::diff ( DateTime $datetime [, bool
$absolute ] )

à laquelle je n'y comprend rien.

QQ1 pourrait-il m'indiquer une syntaxe correcte?
Merci de votre aide.

Jean-Paul
Olivier Miakinen
2010-01-25 16:30:03 UTC
Permalink
Bonjour,
Post by jpwitz
Je voudrais calculer le temps écoulé entre deux données date extraites
par requête d'un champ date qui se présentent sous la forme par exemple
2010-01-25 12:44:38
Des dates extraites d'une base de données ? Dans ce cas ne t'embête pas
à manipuler ces dates en PHP, il existe certainement des fonctions bien
plus performantes en SQL !

Si tu ne t'en sors pas avec la doc, tu peux poser tes questions dans le
groupe fr.comp.applications.sgbd (non modéré).
Post by jpwitz
lorsque j'utilise la fonction date_diff()
ex: $d=date_diff("2010-01-25 12:44:38" , "2010-01-25 12:44:44");
date_sub() expects parameter 1 to be DateTime
Où se situe l'erreur?
La fonction date_sub() te dit que son premier paramètre doit être un
objet de la classe DateTime. D'ailleurs dans la doc de la fonction
date_diff() on voit que cette fonction prend deux paramètres DateTime
et non pas des chaînes de caractères comme tu lui as passées :
<http://fr.php.net/date_diff>.
Post by jpwitz
public DateInterval DateTime::diff ( DateTime $datetime [, bool
$absolute ] )
à laquelle je n'y comprend rien.
C'est la même chose, si ce n'est que ce qui était le premier paramètre
devient l'objet sur lequel on peut appliquer un diff().
Post by jpwitz
QQ1 pourrait-il m'indiquer une syntaxe correcte?
Remplacer "2010-01-25 12:44:38" par new DateTime("2010-01-25 12:44:38")
et idem pour le second paramètre. Mais encore une fois c'est ÀMHA une
mauvaise idée de le faire en PHP : demande le diff à SQL !

Cordialement,
--
Olivier Miakinen
Continuer la lecture sur narkive:
Loading...