Comment comparer les heures

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 : Comment comparer les heures

par lemamouthe » 03 mai 2005, 13:14

Voila j'ai enfin trouvé le pourquoi ça marche pas et suis désolé de t'avoir ennuyé aussi souvent , car effectivement c'étais sous mes yeux. J'ai mon champs tpsepasse en VARCHAR tout simplement et j'ai pu récupérer la valeur .
Cyrano je te remercie encore une fois pour ton aide (you are the best !) :pouce:

par lemamouthe » 01 mai 2005, 18:40

Effectivement en faisant la copie direct sur ecran ça marche, je pense que le probleme réside dans la table , mais je vais essayer chez car ici au job c'est pas la joie vu les outils que j'ai , donc le vais suivre ton conseil et je vais me casser la tête à la maison plus sereinement.

par Cyrano » 01 mai 2005, 17:50

plus de 838 heures pour remplir un formulaire, pas mal :langue:

Plus sérieusement, as-tu essayé de comprendre et de corriger (sur une copie au besoin) le code que je t'ai filé : chez moi, j'obtiens le résultat voulu, il n'y a pas de raison que ça fonctionne pas chez toi. Me rebalancer la page complète ne sert à rien:

As-tu essayé de faire afficher les résultats avant l'enregistrement dans la base et as-tu 838:je_sais_plus_combien_on_s_en_fout ?

par lemamouthe » 01 mai 2005, 17:45

Donc la je n'ai rien touché à la table , je l'ai laissée tel quel , j'ai rajouté le code ce qui donne :

<?php
session_start(); // On relaye la session
require_once('connexion.php');
if (session_is_registered("authentification"))
{
// vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else
{
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$difference = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
/* Calcul du nombre d'heures */
$nb_hr = floor($difference / 3600);
/* Calcul du nombre de minutes */
$nb_mn = floor(($difference - ($nb_hr * 3600))/60);
/* Calcul du nombre de secondes restant */
$sec_hr = $nb_hr * 3600;
$sec_mn = $nb_mn * 60;
$nb_sec = $difference -($sec_hr + $sec_mn);
/* Formatage du temps passé */
$tpsepasse = $nb_hr.":".$nb_mn.":".$nb_sec;
// connexion à la base
$db = mysql_connect('xxxxxxxxxxx', 'xxxxxx', 'xxxxx') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch,

deminfo, regnocouv, litige, mauvnum, autre, endtime)".
" VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."',

'".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."',

'".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."',

'".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
..../....
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
</body>
</html>

Le résultat dans la base : on obtiens bien les heure de début et fin mais un chiffre dans tpsepasse s'affiche qui est d'ailleurs toujours le même "838:59:59"

par Cyrano » 01 mai 2005, 16:57

Tu as la réponse sous les yeux :
`tpsepasse` time NOT NULL default '00:00:00',
Tu essayes d'enregistrer une donnée de type INT dans un champ TIME, ça ne peut que bogguer.
Il faut que tu traites la valeur obtenue dans $tpsepasse pour la mettre au format TIME:
$difference = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    /* Calcul du nombre d'heures */
    $nb_hr = floor($difference / 3600);
    /* Calcul du nombre de minutes */
    $nb_mn = floor(($difference - ($nb_hr * 3600))/60);
    /* Calcul du nombre de secondes restant */
    $sec_hr = $nb_hr * 3600;
    $sec_mn = $nb_mn * 60;
    $nb_sec = $difference -($sec_hr + $sec_mn);
    /* Formatage du temps passé */
    $tpsepasse = $nb_hr.":".$nb_mn.":".$nb_sec;
Voilà, comme ça, ça devrait fonctionner :)
J'espère en tous cas, j'y ai passé une heure

par lemamouthe » 01 mai 2005, 16:47

je commence a comprendre en faite oui le resutat par dans la base tel quel et vu que le champs et au format time forcément ça marche pas, la question est comment convertir le resutat qui est en entier au format time et de l'insérer dans la base à la limeite meme au formate caracthère..

par lemamouthe » 01 mai 2005, 16:21

Voila les caractéristiques de la table "sos"

CREATE TABLE `sos` (
`id` int(4) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL default '',
`date` date NOT NULL default '',
`debutime` time NOT NULL default '00:00:00',
`endtime` time NOT NULL default '00:00:00',
`tpsepasse` time NOT NULL default '00:00:00',
`caisse` varchar(20) NOT NULL default '',
`cas` varchar(5) NOT NULL default '',
`cac` varchar(5) NOT NULL default '',
`cartplus` varchar(5) NOT NULL default '',
`chs` varchar(5) NOT NULL default '',
`chc` varchar(5) NOT NULL default '',
`chqplus` varchar(5) NOT NULL default '',
`anucas` varchar(5) NOT NULL default '',
`anuch` varchar(5) NOT NULL default '',
`deminfo` varchar(7) NOT NULL default '',
`regnocouv` varchar(9) NOT NULL default '',
`litige` varchar(6) NOT NULL default '',
`mauvnum` varchar(7) NOT NULL default '',
`autre` varchar(5) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

par Cyrano » 01 mai 2005, 16:07

Je viens de faire un test : j'ai du commenter un certain nombre de ligne et je n'ai pas de session, mais on s'en fout, je voulais voir le résultat : essaye ce code : remplis ton formulaire et appuie sur le bouton de validation: tu vas voir un résultat en nombre de secondes :
<?php
session_start(); // On relaye la session
//require_once('connexion.php');
//if (session_is_registered("authentification"))
//{
    // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
//}
//else
//{
//    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
//}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
    $endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
    $endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
    $tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    echo("<p>Début de saisie : ". $_POST['starttime2'] ."<br />\nFin de saisie : ". $endtime2 ."<br />\nDurée de la saisie : ". $tpsepasse ."</p>\n");
    // connexion à la base
    // $db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
    // sélection de la base
    // mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
    // on écrit la requête sql
    $requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
    " VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
    // mysql_query($requete);
    // mysql_close(); // on ferme la connexion
    // header("Location:start.php");
?>
<!--
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
-->
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
  <tr>
    <td>
      <form method='post' action='<?php echo($_SERVER['PHP_SELF']); ?>?action=insert'><br>
        <FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
        <select name="caisse">
        <option>Sud Rhone Alpes</option>
        <option>Loire Haute Loire</option>
        <option>Deux Savoie</option>
        <option>Centre Est</option>
        </select> Indiquez la caisse
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
        <INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
        <INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
        <INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
        <select name="cartplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de carte si suppérieur à 1
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
        <select name="chqplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de chèque si suppérieur à 1<br>
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
        <INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
        <INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
        <INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
        <INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
        <INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
        </FIELDSET>
        <br>
        <div align="center">
        <input type='submit' name='submit' value='Fin de Saisie'>
        </div>
      </form>
    </td>
  </tr>
</table>
</div>
</body>
</html>
Donc mon résultat est là: le problème vient peut-être de ce que tu l'envoies tel quel dans ta base sans le moindre formattage....? Quel est le type du champ dans lequel tu envoies cette donnée ??

par lemamouthe » 01 mai 2005, 16:00

Excuse moi mais je ne sais pas faire cela car l'heure de fin de saisie ce fait juste au moment ou on valide le formulaire, a moins d'un autre moyen mais je suis pas encore assez calé :?

par Cyrano » 01 mai 2005, 15:46

Essaye de faire afficher $tpsepasse juste avant l'insertion pour voir ce que ça donne.

par Invité » 01 mai 2005, 15:41

Non c'est pareil dans ma base le résultat s'affiche "00:00:04" quand la saisie dure 4 seconde mais des que je laisse le formulaire plus d'une minute le resutat obtenu est "00:00:00" alors que le debutime est bien "15:26:46" et le endtime est "15:34:03" on dirait qu'il calcul uniquement les secondes.

par Cyrano » 01 mai 2005, 15:07

Non, ça y est, j'ai compris, je te mets le code corrigé et je t'explique après :
<?php
session_start(); // On relaye la session
require_once('connexion.php');
if (session_is_registered("authentification"))
{
    // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
}
else
{
    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
    $endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
    $endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
    $tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    // connexion à la base
    $db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
    // sélection de la base
    mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
    // on écrit la requête sql
    $requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
    " VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
    mysql_query($requete);
    mysql_close(); // on ferme la connexion
    // header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
  <tr>
    <td>
      <form method='post' action='stop3.php?action=insert'><br>
        <FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
        <select name="caisse">
        <option>Sud Rhone Alpes</option>
        <option>Loire Haute Loire</option>
        <option>Deux Savoie</option>
        <option>Centre Est</option>
        </select> Indiquez la caisse
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
        <INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
        <INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
        <INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
        <select name="cartplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de carte si suppérieur à 1
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
        <select name="chqplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de chèque si suppérieur à 1<br>
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
        <INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
        <INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
        <INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
        <INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
        <INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
        </FIELDSET>
        <br>
        <div align="center">
        <input type='submit' name='submit' value='Fin de Saisie'>
        </div>
      </form>
    </td>
  </tr>
</table>
</div>
</body>
</html>
Regarde bien, j'ai déplacé le test de fin en début de page : sinon, au chargement, on ré-initialise une des variable et on a un calcul qui va fausser... Logique, mais il faut essayer de se représenter que la page se recharge et que tout est interprété dans l'ordre d'apparition...

par Cyrano » 01 mai 2005, 14:45

Je dirais que c'est curieux : as-tu essayé de faire afficher le résultat avant de l'enregistrer ?

par lemamouthe » 01 mai 2005, 14:36

Merci Cyrano j'ai fais ce que tu ma dis mais le soucis et que plus rien de s'affiche dans la base alors j'ai cherché une autre solution et qui fonctionne, le seul ennuie maintenant c'est que dans la base le résultat du temps passé s'affiche mais pas au dela de 1 minute. Quelqun a une idée ?
Voici le Code :
<?php require_once('connexion.php'); ?>
<?php
session_start(); // On relaye la session
if (session_is_registered("authentification")){ // vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<? $date = date("Y-m-d"); ?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?> </strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
<option>Centre Est</option>
</select> Indiquez la caisse
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
<select name="cartplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de carte si suppérieur à 1
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
<select name="chqplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de chèque si suppérieur à 1<br>
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
</FIELDSET>
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
$tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
// connexion à la base
$db = mysql_connect('126.1.1.179', 'sosoppo', 'oppose') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime) VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>

</html>

par Cyrano » 29 avr. 2005, 22:06

Salut,
la solution n'est pas loin de ce que tu as fait : au lieu de prendre date() en point de repère, utilises time() (sans paramètres)
<?php
$debutime = time();
/* Reste de ton code jusqu'à.. */
$endtime = time();
$tpsepasse = $endtime - $_POST['starttime'];
?>
Le résultat est exprimé en secondes, à toi de reformatter à ton goût :)