probleme de variable au format time

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 : probleme de variable au format time

par Invité » 22 janv. 2007, 23:18

bon ok mais le probleme pour soustraire c'est que si je soustrais 30 minutes a zéro, il y a un hic.

j'ai beau chercher je n'ai pas trouvé.

par zeus » 22 janv. 2007, 16:53

J'aurais envie de répondre qu'il faut faire - au lieu de + :-k

Déjà, les up ne sont pas très bien vu sur PHPFrance, mais en plus, ce que tu demande n'est pas très compliqué à partir du code de Ryle.

Commence par réfléchir à ce que fait le code de Ryle pour essayer de le modifier ;)

par Invité » 22 janv. 2007, 16:51

up

par Invité » 11 janv. 2007, 16:43

merci sa marche du tonnerre. Tout fonctionne. Par contre j'aurai encore un petit souci comment en fesant de la même manière que ryle m'a indiquer on fait une soustraction.

Et encore merci à tous.

par Ryle » 03 janv. 2007, 15:27

Dans ce cas, il serait peut être plus judicieux de simplement additionner tes minutes et de faire la division par 60 pour savoir à combien d'heures elles correspondent :
$heures = $heure['h'] + $tps['h']; // ex 1 + 2
$minutes = $heure['m'] + $tps['m']; // ex 30 + 40

// détail des minutes
$nbHeuresCompletes = floor($minutes / 60); // (30+40) / 60 = 1.166 = 1
$nbMinutesRestantes = $minutes % 60; // (30+40) % 60 = 10

// détail des heures
$nbHeures = $heures + $nbHeuresCompletes;
// (1+2) + 1

par Invité » 03 janv. 2007, 14:46

le probleme c'est que mois c'est plus un format temps que heure. Je dois pouvoir faire affixher 38 hrs 45h. C'est pour un calcule de temps de travail par mois.
merci

par Ryle » 03 janv. 2007, 14:29

Bah pour les heures, il te suffit de faire pareil en ajoutant $heure['h'] et $tps['h'] :)

Quant au résultat, le plus simple pour le savoir c'est d'essayer ;)
Mais si cela peut te rassurer, il est peu probable qu'il te retourne un nombre de minute supérieur à 59, c'est l'intérêt des formats date ou time :)

(Nota : attention, si tu dépasses les 24h, ce sont les jours qui vont augmenter, et les heures retomberont à 0, etc.)

par Invité » 03 janv. 2007, 14:19

il faudrait donc que j'ajoute +$tps['m'] mais il faudrait que j'ajoute aussi les heures. Il n'y aura pas de probleme pour les calcus ? par exemple 01h40 + 01h30 = il me calculera bien 3h10 et non 02h70 ?
merci

par Ryle » 03 janv. 2007, 13:12

$heure['m'] + $tps
Il me semble que ton $tps soit un tableau et pas un nombre.... :)

par Invité » 03 janv. 2007, 13:07

en faite cela ne m'ecrit plus cette erreur. J'ai quelque peut changer mon code maintenant il resemble a :
$heure = Array('h'=>date('H', $nbheure), 'm'=>date('i', $nbheure), 's'=>date('s', $nbheure)); // vous pouvez aussi obtenir ce tableau avec la fonction getDate() 
$tps = Array('hr'=>date('H', $row3[0]), 'mi'=>date('i', $row3[0]), 'se'=>date('s', $row3[0]));

$time = mktime($heure['h'], $heure['m'] + $tps, $heure['s'], 00, 00, 00); 
echo $time;
$nbheure = time('h:m:s', $time); 
echo $nbheure.'ici'; 
mais sur cette ligne :
$time = mktime($heure['h'], $heure['m'] + $tps, $heure['s'], 00, 00, 00); 
j'ai l'erreur :

Code : Tout sélectionner

Fatal error: Unsupported operand types in
Voila si vous aviez une idée des erreur que j'ai pu commaitre cela m'aiderai vivement. Merci d'avance.

par mere-teresa » 29 déc. 2006, 11:29

echo $nbheure; [/php] Mais cela ne marche pas cela m'ecrit : Fatal error: Function name must be a string in
Quel est ton erreur exactement ? Quelle ligne ? Quel est le code qui correspond à cette ligne ?

par Invité » 29 déc. 2006, 10:21

vous n'avez vraiment pas d'idée ?


merci

par Invité » 27 déc. 2006, 12:39

j'ai essayer de corriger mon code par rapport a ce que j'ai pu voir a divers endoit, et cela me donne une fois corriger :
$heure = Array('h'=>time('h', $nbheure), 'm'=>time('i', $nbheure), 's'=>time('s', $nbheure)); // vous pouvez aussi obtenir ce tableau avec la fonction getDate() 
$tps = Array('hr'=>time('h', $row3[0]), 'mi'=>time('mi', $row3[0]), 'se'=>time('se', $row3[0]));

// mktime fait automatiquement le calcul 
$time = mktime($time('h'), $time('m')-$tps, $time('s'), 00, 00, 00); 
$nbheure = time('h:m:s', $time); 
echo $nbheure; 
Mais cela ne marche pas cela m'ecrit : Fatal error: Function name must be a string in

merci

par Invité » 27 déc. 2006, 12:03

Bon j'ai fait sa mais cela marche pas bien sur :
Que faut il que je change ?
merci
list($h, $m, $s) = explode(":", $nbheure);
list($hr, $mi, $se) = explode(":", $row3[0]);

$heure = Array('annee'=>time('h'), 'mois'=>time('m'), 'jour'=>time('s')); // vous pouvez aussi obtenir ce tableau avec la fonction getDate() 
$tps = Array('annee'=>time('hr'), 'mois'=>time('mi'), 'jour'=>time('se'));

// mktime fait automatiquement le calcul 
$time = mktime($time('h'), $time('m')+$tps, $time('s'), 00, 00, 00); 
$nbheure = time('h/m/s', $time); 
echo $nbheure; 

par zeus » 27 déc. 2006, 11:52

Regarde la documentation de mktime(), tu peut spécifier des heures ;)