gestion heure php

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 : gestion heure php

Re: gestion heure php

par sirakawa » 04 déc. 2013, 11:24

Bien sûr qu'on a des occasions d'opérer sur des heures:
Si le tour part à 8h 47 et qu'on estime la durée de l'étape à 5h 45, à partir de quelle heure faut-il barrer les routes?
plussoyant mon prédécesseur:
http://us2.php.net/manual/fr/datetime.add.php

Re: gestion heure php

par orenx22 » 04 déc. 2013, 00:33

Pour moi et pour n'importe quel début je trouve que l'exploitation de l'objet 'datetime' et juste parfait.
<?php

$datetime1 = new DateTime( '2009-10-11 12:39:09' );
$datetime2 = new DateTime( '2009-10-13 13:41:05' );

$interval = $datetime1-> diff( $datetime2 );

echo $interval-> format( '%Y-%m-%d %H-%i-%s' );

$diff = array();
$diff['annee']  = $interval-> format( '%Y' );
$diff['mois']   = $interval-> format( '%m' );
$diff['jour']   = $interval-> format( '%d' );
$diff['heure']  = $interval-> format( '%H' );
$diff['min']    = $interval-> format( '%i' );
$diff['sec']    = $interval-> format( '%s' );

print_r( $diff );
http://php.net/manual/fr/class.datetime.php
en lien avec le tableau des dates :
http://php.net/manual/fr/function.date.php

La gestion d’intervalle et assez sympa aussi !

Re: gestion heure php

par simon » 04 déc. 2013, 00:21

Oui ta réponse m'a éclairé, pour moi 7h30 + 3h00 = 10h30, mais je me suis peut être mal exprimé en parlant d'heures j’aurais peut-être du employé le terme de durée.

Re: gestion heure php

par nico63800 » 04 déc. 2013, 00:07

bonjour

c'est logique !!

La fonction strtotime() essaye de lire une date au format anglais fournie par le paramètre time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.

http://php.net/manual/fr/function.strtotime.php

donc ,
$h1=strtotime("07:30"); // $h1 = int(1386073800)
$h2=strtotime("03:00"); // $h2 = int(1386057600)

dans ce cas si tu fais $h1-$h2 tu obtiens en secondes la différence entre les deux timestamp soit 4h30 une fois convertie en heures et minutes

mais si tu additionnes, la somme des 2 timestamp ne correspond à rien ...

de plus, "additionner" deux heures, je ne vois pas trop à quoi çà peut correspondre.
Quand tu dis que le résultat est erroné dans le cas de la somme, à quel résultat t'attends tu ?
Que peut bien valoir 7h30 + 3h00 ?
on peut additionner des durées, ca ok, mais des heures ... ?

en espérant t'avoir aidé
salutations.

gestion heure php

par simon » 03 déc. 2013, 22:12

Bonjour,

Je me tourne vers vous car je suis perdu et je ne comprends pas quelques chose. J'essaie d'ajouter 2 date entre elle. Or l'addition ne fonctionne pas mais la soustraction elle fonctionne et je ne vois pas la différence.
Le code :
			$h1=strtotime("07:30");
			$h2=strtotime("03:00");
			echo gmdate('H:i',$h1-$h2);
J'obtiens bien le résultat voulu ici : 04:30 mais si je remplace le - par le + alors la le résultat est erroné
			$h1=strtotime("07:30");
			$h2=strtotime("03:00");
			echo gmdate('H:i',$h1+$h2);
J'obtiens alors 02:01 et je ne comprend vraiment pas pourquoi quelle est la différence?

Merci d'avance