PHP maitrise du temps et des fonctions associ
Slyvore
-
Slyvore -
Slyvore -
Alors voila, j'ai dans ma base de donnée deux temps associé à deux evenement. Par exemple : Pour aller au travail, j'ai besoin de 1 heure, et je dispose de 2 heures devant moi. Ce que je voudrais faire, c'est pouvoir soustraire ses deux valeurs pour qu'il me donne le temps qu'il me reste de libre après etre arrivé au boulot.
En clair, j'ai dans ma base de donnée, deux endroit ou sont stocké des temps au format "time", mais je n'arrive pas a les sourtraire.
Je m'entraine donc en petit script pour assayé de manipuler des soustration dans des temps, mais cela ne donne rien. Par exemple, le script ci-dessous qui doit calculer 13 heures moin 2 heures donne 12 heures au lieu de 11 heures. je ne comprend donc pas, aider moi svp.
$temps1 = mktime(13,0,0);
$temps1 = date("H:i:s",$temps1);
echo "$temps1<br>";
$temps2 = mktime(2,0,0);
$temps2 = date("H:i:s",$temps2);
echo "$temps2<br>";
$temps1 = explode(":", $temps1);
$temps1 = mktime($temps1[0],$temps1[1],$temps1[2]);
$temps2 = explode(":", $temps2);
$temps2 = mktime($temps2[0],$temps2[1],$temps2[2]);
$temps = $temps1-$temps2;
$temps = date("H:i:s",$temps);
echo "$temps";
En clair, j'ai dans ma base de donnée, deux endroit ou sont stocké des temps au format "time", mais je n'arrive pas a les sourtraire.
Je m'entraine donc en petit script pour assayé de manipuler des soustration dans des temps, mais cela ne donne rien. Par exemple, le script ci-dessous qui doit calculer 13 heures moin 2 heures donne 12 heures au lieu de 11 heures. je ne comprend donc pas, aider moi svp.
$temps1 = mktime(13,0,0);
$temps1 = date("H:i:s",$temps1);
echo "$temps1<br>";
$temps2 = mktime(2,0,0);
$temps2 = date("H:i:s",$temps2);
echo "$temps2<br>";
$temps1 = explode(":", $temps1);
$temps1 = mktime($temps1[0],$temps1[1],$temps1[2]);
$temps2 = explode(":", $temps2);
$temps2 = mktime($temps2[0],$temps2[1],$temps2[2]);
$temps = $temps1-$temps2;
$temps = date("H:i:s",$temps);
echo "$temps";
3 réponses
-
si si, c'est bien dans l'ordre la
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])
Mais bon, ca m'aide tjrs pas tout ca... snifff -
Bon, je pense avoir trouvé. Pour ceux que ca interesse, voila le detail
$t1 = mktime(13,00,00);
$t1 = date("H:i:s",$t1);
$t2 = mktime(00,02,02);
$t2 = date("H:i:s",$t2);
$t1 = explode(":", $t1);
$t2 = explode(":", $t2);
$te[2] = $t1[2]-$t2[2];
if ($te[2]<0)
{
$t1[1]--;
$te[2] = 60+$te[2];
}
$te[1] = $t1[1]-$t2[1];
if ($te[1]<0)
{
$t1[0]--;
$te[1] = 60+$te[1];
}
$te[0] = $t1[0]-$t2[0];
$te = "$te[0]:$te[1]:$te[2]";
echo "$te"; -
Moi aussi je m'étais fait avoir...
Attention a mktime() : les parametres ne sont pas (Heure, Minutes, Secondes) !
Regarde dans la Doc PHP, c'est dans un ordre à la con.
Moins le blanc est intelligent, plus le noir lui parait bête