Avatar billede xtr0 Nybegynder
11. maj 2003 - 15:06 Der er 7 kommentarer og
1 løsning

Regne ud hvor mangedage,timer, minutter der er gået siden sidste

Titel: Regne ud hvor mangedage,timer, minutter der er gået siden sidste besøg


jeg fik hjælp her:
http://www.eksperten.dk/spm/338219

Den skulle skrive hvor lang tid siden det var man var på siden sidst men har ikke givet point fordi en hele tiden returnerer det samme.

30 point for en der kan lave det så det virker
Avatar billede nicklasb Nybegynder
11. maj 2003 - 15:46 #1
nu gidder jeg ikke sidde og læse hele det andet spørgsmål igennem.. (husk lige at lukke det, da du ikke må oprette to ens spørgsmål..)

men hvordan vil du gemme hvornår han sidst har været online?? cookies eller database-styret??

hvis du har en databse, kan det jo gøres relativt let. Der kan du evt. bare hver gang han besøger den side, du vil informere om, ligge et time() samt brugeres ip i en databse (hvis ipen ikke ellerede er der), eller opdataere databasen med en ny tid (hvis han har været der før)
så kan du jo bare trække time() og den gamle tid fra hinanden.. og så har du sekunderne siden sidst.. Disse kan du så lave om i det format du ønsker??

hvilken del af det er det du skal have hjælp til ??
Avatar billede xtr0 Nybegynder
11. maj 2003 - 17:15 #2
Database styret...
Avatar billede nicklasb Nybegynder
11. maj 2003 - 17:40 #3
hvilke af delene er det så du har problemer med? altså at du skal have hjælp til?
Avatar billede xtr0 Nybegynder
11. maj 2003 - 18:51 #4
altså jeg har haft et som regnede tid/minutter ud men den kløjste helt i det da man havde været væk i over et døgn.
Mangler sådan set den der udregning :(
Avatar billede sostack Nybegynder
13. maj 2003 - 07:11 #5
Prøv med:
<?
$nu = time();
$cndb = mysql_connect("johnsen-it-1", "root", "") OR DIE(mysql_error());
mysql_select_db("tidsreg", $cndb);
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != ""){
      $IP = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    $proxy = $HTTP_SERVER_VARS["REMOTE_ADDR"];
      $host = @gethostbyaddr($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]);
  }else{
      $IP = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    $host = @gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
  }
$ipquery = "SELECT * FROM regtid WHERE ip='$IP'";
$resultat = mysql_query($ipquery) OR DIE(mysql_error());
if(mysql_num_rows($resultat) != 0)
{
    $gl_tid = mysql_fetch_array($resultat);
    $gl_tidspunkt = $gl_tid['tid'];
    $ipquery = "UPDATE regtid set tid=$nu WHERE ip='$IP'";

   
} else {
    $gl_tidspunkt = $nu;
    $ipquery = "INSERT INTO regtid (ip, tid) VALUES ('$IP', $nu)";
}
mysql_query($ipquery);
$forskel = $nu - $gl_tidspunkt;
$fdage = 0;
$ftimetal = 0;
$fminuttal = 0;
if($forskel >= (24 * 60 * 60))
{
$fdage = intval($forskel / (24 * 60 * 60));
$forskel -= $fdage * 24 * 60 * 60;
} elseif($forskel >= (60 * 60))
{
$ftimetal = intval($forskel / (60 * 60));
$forskel -= $ftimetal * 60 * 60;
}elseif($forskel >= (60))
{
$fminuttal = intval($forskel / 60);
$forskel -=  $fminuttal * 60;
}
echo "Det er " . $fdage . " dage, " . $ftimetal . " timer,  " . $fminuttal . " minutter og " . $forskel . " sekunder siden du sidst besøgte siden!";
?>

tabellen:
CREATE TABLE regtid (
  id bigint(20) NOT NULL auto_increment,
  ip text NOT NULL,
  tid bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

//sostack
Avatar billede xtr0 Nybegynder
14. maj 2003 - 17:11 #6
det virkede lige indtil den kom op over 1 time så kom den med:

Det er 0 dage, 1 timer, 0 minutter og 946 sekunder siden du sidst besøgte siden!0 _ 60 _ 0
60

Min kode:

#regn antal ture ud

$nu = time();
$test = mysql_query("SELECT * FROM spillere WHERE id = '$_SESSION[s_id]'");
$test2 = mysql_fetch_array($test);



$gl_tidspunkt = $test2[seneste_login];

$forskel = $nu - $gl_tidspunkt;
$fdage = 0;
$ftimetal = 0;
$fminuttal = 0;
if($forskel >= (24 * 60 * 60))
{
$fdage = intval($forskel / (24 * 60 * 60));
$forskel -= $fdage * 24 * 60 * 60;
} elseif($forskel >= (60 * 60))
{
$ftimetal = intval($forskel / (60 * 60));
$forskel -= $ftimetal * 60 * 60;
}elseif($forskel >= (60))
{
$fminuttal = intval($forskel / 60);
$forskel -=  $fminuttal * 60;
}
echo "Det er " . $fdage . " dage, " . $ftimetal . " timer,  " . $fminuttal . " minutter og " . $forskel . " sekunder siden du sidst besøgte siden!";


if($fdage > 2.0833333333333333333333333333333) {
$ture = '200';
} else {
#1440 = antal minutter på en dag
$dage = $fdage * 1440;
$timer = $ftimetal * 60;
$minut = $fminuttal;

echo"$dage _ $timer _ $minut";

$samlet_ture = $dage + $timer + $minut / 15;
echo"<br><b>$samlet_ture</b>";


}
Avatar billede xtr0 Nybegynder
15. maj 2003 - 13:43 #7
Jeg gjorde det MEGET simplere og brugtre egentlig $forskel = $nu - $gl_tidspunkt; men du får points alligevel ;)

Kode:
$gl_tidspunkt = $test2[seneste_login];

$forskel = $nu - $gl_tidspunkt;
$minutter2 = $forskel/60;
$minutter = floor($minutter2);
$turer2 = $minutter / 15;
$turer = floor($turer2);

$ture_tjent_ialt = $test4[ture] + $turer;
Avatar billede xtr0 Nybegynder
03. juni 2003 - 22:02 #8
svar?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester