24. februar 2003 - 15:37
Der er
10 kommentarer
Hvor mange minutter har session kørt?
Jeg skal bruge lidt hjælp til at måle hvor lang tid en session har kørt i minutter. kan man det?
Annonceindlæg fra Computerworld
24. februar 2003 - 16:25
#1
De steder hvor jeg bruger sessions, der gemmer jeg den slags information i en database, hvorefter jeg kan tage forskellen på det tidspunkt databasen sidst har skrevet information om den pågældende session og nu.
24. februar 2003 - 16:34
#2
Nemlig via en time() ik? brb finder lige en kode
24. februar 2003 - 16:39
#3
her //Start:: session_start(); $start_dag = date(\"d\",time()); $start_timer = date(\"h\",time()); $start_min = date(\"i\",time()); session_register(start_dag); session_register(start_timer); session_register(start_min); //slut:: session_start(); $slut_timer = date(\"h\",time()); $slut_min = date(\"i\",time()); $online_timer = $slut_timer-$start_timer-1; $online_min = $slut_min-$start_min+60; if($start_dag != date(\"d\",time())) $online_timer = $online_timer+24; echo \"Du har været online i $online_timer timer og $online_min minutter.\"; Men den starter på -1 time og 60 minutter. Kan man tilpasse deT?
24. februar 2003 - 18:02
#4
brug et unix timestamp: //start session_start(); $start_tid = time(); session_register('start_tid'); //slut session_start(); $start_tid = $_SESSION['start_tid']; $slut_tid = time(); $tidsforloeb = $slut_tid - $start_tid; //funktion til at formatere tidsforløbet //language settings, for easy translation: $lang['year']['text'] = 'år'; $lang['year']['ending'] = ''; $lang['month']['text'] = 'måned'; $lang['month']['ending'] = 'er'; $lang['week']['text'] = 'uge'; $lang['week']['ending'] = 'r'; $lang['day']['text'] = 'dag'; $lang['day']['ending'] = 'e'; $lang['hour']['text'] = 'time'; $lang['hour']['ending'] = 'r'; $lang['minute']['text'] = 'minut'; $lang['minute']['ending'] = 'ter'; $lang['second']['text'] = 'sekund'; $lang['second']['ending'] = 'er'; //convert function function converttime($time, $format = 'text') { GLOBAL $lang; $time_string = ''; //any years? if($time >= 31536000) { $years = floor($time / 31536000); $array['years'] = $years; $time = $time % 31536000; $time_string .= "$years " . $lang['year']['text']; $time_string .= ($years != 1) ? $lang['year']['ending'] . ' ' : ' '; } else { $array['years'] = 0; } //any months? if($time >= 2592000) { $months = floor($time / 2592000); $array['months'] = $months; $time = $time % 2592000; $time_string .= "$months " . $lang['month']['text']; $time_string .= ($months != 1) ? $lang['month']['ending'] . ' ' : ' '; } else { $array['months'] = 0; } //any weeks (only if no months & no years)? if($time >= 604800 && !isset($years) && !isset($months)) { $weeks = floor($time / 604800); $array['weeks'] = $weeks; $time = $time % 604800; $time_string .= "$weeks " . $lang['week']['text']; $time_string .= ($weeks != 1) ? $lang['week']['ending'] . ' ' : ' '; } else { $array['weeks'] = 0; } //any days? if($time >= 86400) { $days = floor($time / 86400); $array['days'] = $days; $time = $time % 86400; $time_string .= "$days " . $lang['day']['text']; $time_string .= ($days != 1) ? $lang['day']['ending'] . ' ' : ' '; } else { $array['days'] = 0; } //any hours? if($time >= 3600) { $hours = floor($time / 3600); $array['hours'] = $hours; $time = $time % 3600; $time_string .= "$hours " . $lang['hour']['text']; $time_string .= ($hours != 1) ? $lang['hour']['ending'] . ' ' : ' '; } else { $array['hours'] = 0; } //any minutes? if($time >= 60) { $minutes = floor($time / 60); $array['minutes'] = $minutes; $time = $time % 60; $time_string .= "$minutes " . $lang['minute']['text']; $time_string .= ($minutes != 1) ? $lang['minute']['ending'] . ' ' : ' '; } else { $array['minutes'] = 0; } //remaining is seconds if($time > 0 || $time_string == '') { $time_string .= "$time " . $lang['second']['text']; $time_string .= ($time != 1) ? $lang['second']['ending'] . ' ' : ' '; } $array['seconds'] = $time; //return what? if($format == 'text') { return $time_string; } elseif($format == 'array') { return $array; } } echo "Du har været online " . converttime($tidsforloeb);
24. februar 2003 - 18:04
#5
ok, det virkede ikke helt som det skulle...
24. februar 2003 - 18:04
#6
finder lige fejlen :
24. februar 2003 - 18:10
#7
nå - det virker da fint...nok bare min egen server som ikke kan finde ud af sessions, når jeg ikke bruger dem normalt :)
24. februar 2003 - 18:54
#8
Kan du gøre det simplere og kun med minutter?!?
24. februar 2003 - 19:17
#9
erm...jeps, lige 2 sek :)
24. februar 2003 - 19:24
#10
skriv det her i slut-tingen i stedet for: session_start(); $start_tid = $_SESSION['start_tid']; $slut_tid = time(); $tidsforloeb = $slut_tid - $start_tid; $minutter = floor($tidsforloeb/60); $enhed = ($minutter == 1) ? '' : 'ter'; echo "Du har været online " . $minutter . " minut" . $enhed;
Vi tilbyder markedets bedste kurser inden for webudvikling