dae heure seconde ... entre deux date ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : dae heure seconde ... entre deux date ...

par Invité » 01 mars 2006, 15:48

voila j'ai teste pour voir un peu, il me met toujours reste 2j20h puis il commence a decompte ... quand il est a 0j0h0m0s, il pas direct a 4j3h59m59s, donc le total des jours est exacte si on tatlise les deux ca fais 7 jours, mais ca fais pas ce que je veux ...

par Hermès » 01 mars 2006, 15:44

oui.

Mais quand tu lui fais faire cette requête, il te renvoie quoi ? par exemple si tu lui fais faire cette requête dans phpMyAdmin ?

par Invité » 01 mars 2006, 15:39

quand on fait : SELECT TIMEDIFF(now(),delai)

la date now est sous quel forme?

yyyy-mm-jj hh:mm:ss???

par Invité » 01 mars 2006, 15:22

et je me dema

par Invité » 01 mars 2006, 14:20

voici ce qu'il affiche : SELECT TIMEDIFF(now(),delai) FROM intervention WHERE idinter='205'


oui delai c'est ou je stocke ma date +7 jours

par Hermès » 01 mars 2006, 14:03

"delai" étant un paramètre de ta base ?
et il te donne quoi comme résultat de la requête ?

par Invité » 01 mars 2006, 14:02

ca c'est ce qu'il affiche et ca c'es tma requete :

$ker="SELECT TIMEDIFF(now(),delai)
FROM intervention
WHERE idinter='$idinter'";

par Invité » 01 mars 2006, 14:01

SELECT TIMEDIFF(now(),delai) FROM intervention WHERE idinter='205'

par Hermès » 01 mars 2006, 13:48

Affiche-nous ta requête et le résultat qu'on voye le problème.

par Hermès » 01 mars 2006, 13:47

oui je suis pas un habitué du mysql_result :
$row = mysql_fetch_row($kef);
$diff = $row[0];
Et normalement $diff vaudra le résultat de la requete SQL.

par Invité » 01 mars 2006, 13:45

ok, il manquai un ,0

mnt le soucis c'est qu'il me mets tjrs reste 2j20h au y reste 7j ...

par Invité » 01 mars 2006, 13:41

j'obtiens ceci avec le dernier code :

Warning: Wrong parameter count for mysql_result() in c:\documents and settings\stagiere\bureau\dit simplification programme\ajoutclientcompletdb.php on line 235

par Invité » 01 mars 2006, 13:35

ok merci, mais comment je recupere cette valeur dans une variable???

par Hermès » 01 mars 2006, 13:33

$diff = mysql_result($kef);
preg_match("/(-?)([0-9][0-9]):([0-5][0-9]):([0-5][0-9])/", $diff, $res);

$difference = (floor($res[2]/24))."j ".($res[2]%24)."h ".$res[3]."m ".$res[4]."s";

if ($res[1] == "-")
  echo "Il y a un retard de ".$difference;
else
  echo "Il reste ".$difference;
Je n'ai pas testé cette portion de code.
Explications : on vérifie que la chaine est du type "-hh:mm:ss" ou "hh:mm:ss" et on capture les heures, les minutes et les secondes.
On divise le nombre d'heures par 24 (et on arrondi) pour connaitre le nombre de jours que ça fait.
On fait le nombre d'heures modulo 24 pour savoir combien d'heures ça fait.

Edit : Super les smileys dans le code =) je désactive.

par heddicmi » 01 mars 2006, 13:28

En parlant de ça, je viens de regarder s'il n'y avait pas possibilité à MySQL de faire tout seul la conversion d'une valeur du type "46:00:00" en une valeur du type "1d 22:00:00". Mais j'ai rien trouvé, faut faire ça soit même (cela dit c'est pas ce qu'il y a de plus compliqué).
En effet, j'ai parcourus la page des fonctions et rien ne semblait convenir... C'est cependant dommage, parcequ'il y a quasiement toute les possibilité (nombre de jours, nombres de mois etc..)

Celà dit, ne pas oublier que timediff() est là depuis mysql 4.1.1... Faut faire attention à, on sait jamais...

Pour toi invité, il faut que tu customise ta requête...
Pour toi, elle sera du type :
SELECT TIMEDIFF(now(), TOM_CHAMP_DATE+7JOURS)
FROM TA_TABLE
WHERE ID_INTERVENTION=X