bonjour,
j'aimerais soustraire deux dates qui ont cette forme :
2011-08-22 10:36:23
2011-08-09 00:00:00
et avoir le résultat en heure. j'ai beau cherché une fonction qui effectue ça directement mais sans résultat.
bonjour,
j'aimerais soustraire deux dates qui ont cette forme :
2011-08-22 10:36:23
2011-08-09 00:00:00
et avoir le résultat en heure. j'ai beau cherché une fonction qui effectue ça directement mais sans résultat.
Bonjour,
Tout dépend de la version de PHP que tu utilises.
Si tu utilises les dernières versions de PHP (5) regardes :
http://www.php.net/manual/fr/datetime.sub.php
Sinon il faut regarder du coté de mktime et strftime
http://fr.php.net/manual/fr/function.mktime.php
http://fr.php.net/manual/fr/function.strftime.php
ça me retourne ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $idcreate= $row->date_de_création; $idaction= $row->date_de_dernière_action; $sous = $idaction ->diff( $idcreate );
Call to a member function diff() on a non-object in C:\wamp\www\2\duree_acc.php on line 26
(line 26 est celle de $sous = $idaction ->diff( $idcreate ))
Utilisepour pouvoir utiliser la fonction diff par la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Datetime::createFromFormat
avec $idcreate et $idaction avec cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 while($row=mysql_fetch_object($query)) { $idcreate= $row->date_de_création; $idaction= $row->date_de_dernière_action; $total++; $sous = $idaction ->diff( $idcreate ); $add=$add - $sous ; }
2011-08-22 10:36:23
Il n'y a aucun Datetime la...
oui en fait j'ai enlevé le datetime en espérant que ça va marcher; mais en vain;
le code avec date time est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 while($row=mysql_fetch_object($query)) { $idcreate= new DATETime($row->date_de_création); $idaction=new DATETime ($row->date_de_dernière_action); $total++; $sous = $idaction ->diff( $idcreate ); $add=$add - $sous ; }
erreur :
Notice: Object of class DateInterval could not be converted to int in C:\wamp\www\2\duree_acc.php on line 28
Call Stack
Catchable fatal error: Object of class DateInterval could not be converted to string in C:\wamp\www\2\duree_acc.php on line 33
Merci d'avance
regarde bien la doc, ça renvoie un DateInterval
au passage pourquoi mettre ça en majuscule ? pourquoi mettre des accents dans tes noms de champs ?
j'ai trouvé la solution , on peut le faire avec mysql avec la commande timediff
mais je c pa comment récupérer le résultat de timediff pour l'utiliser dans mes calculs :/
C'est-à-dire ? Récupérer la valeur calculée par la requête ?
ou sinon nommer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $sql = mysql_query("SELECT TIMEDIFF('".$date_fin."','".$date_debut."')"); $tempsTotal = mysql_fetch_array($sql_temps); echo "Resultat : ".$tempsTotal[0];
Fais bien attention à ce que les dates "$date_fin" et "$date_debut" aient bien le même format (time ou datetime pour les deux).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $sql = mysql_query("SELECT TIMEDIFF('".$date_fin."','".$date_debut."') as ecart"); $tempsTotal = mysql_fetch_array($sql_temps); echo "Resultat : ".$tempsTotal['ecart'];
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager