Avatar billede jammerlab Nybegynder
21. november 2003 - 12:20 Der er 23 kommentarer og
2 løsninger

Beregning af tid.

Lad mig starte med at sige... http://dk.php.net/manual/en/function.date.php
så behøver i andre ikke paste den til mig JA jeg har været derinde :)

Ok.. når jeg kører mit script så blir en variabel sat:

$uptime = strtotime ("now");

Hvordan beregner jeg scriptets uptime via den? Altså hvor længe det har kørt... Dage/timer/min/sek
Avatar billede jammerlab Nybegynder
21. november 2003 - 12:22 #1
Har prøvet med echo date("H m s", mktime($uptime)); men det ser ikke ud til at fungere :)
Avatar billede tipsen Nybegynder
21. november 2003 - 14:09 #2
Dit scripts oppetid... - normalt bliver et script jo eksekveret i løbet af få sekunder - er det en form for webservice eller, hvorfor giver det mening at dit script har en oppetid!?
Avatar billede jammerlab Nybegynder
21. november 2003 - 14:10 #3
Det er en IRC bot... sok kører via console...
Avatar billede jammerlab Nybegynder
21. november 2003 - 14:11 #4
som*
Avatar billede s.timmerman Nybegynder
21. november 2003 - 15:02 #5
Du kan jo sætte en variabel når du sætter botten:
$started = time();

Og når så en uptime-trigger bliver kørt kan du sende dette output tilbage:
$output = strftime("giderikkelæsemanfinddetselv", $time);
Avatar billede s.timmerman Nybegynder
21. november 2003 - 15:02 #6
Sætter = starter ;-)
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:04 #7
hehe også det jeg gør i starten... brugte bare strtotime ...

$output = strftime("giderikkelæsemanfinddetselv", $time); << ?! :D
Avatar billede s.timmerman Nybegynder
21. november 2003 - 15:13 #8
Nårh ja :D

Kunne være jeg skulle læse hvad du skulle bruge først.

function uptime($seconds){
    $days = floor($seconds/86400);
    $seconds = seconds - $days*86400;
    $hours = floor($seconds/3600);
    $seconds = $seconds - $hours*3600;
    $minutes = floor($minutes/60);
    $seconds = $seconds - $minutes*60;
    $seconds = floor($seconds);
    return "<b>Uptime</b> Days: ".$days.", hours: ".$hours.", minutes: ".$minutes.", seconds: ".$seconds;
}

$start = time(); //Skal sættes når du starter botten
$end = time(); //Skal sættes når du vil have uptime
$output = uptime($end-$start);
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:17 #9
Jeg er ikke heeeelt med på hvad du laver... for mig ser det ud som om du bruger sek. til at påbegynde udregningerne... men hvor for du sek fra? :) Desuden ser jeg helst ikke at det er en function... ikke fordi det er svært at lave om.
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:19 #10
upz er med hehe mig der lige så forkert ;)
Avatar billede s.timmerman Nybegynder
21. november 2003 - 15:20 #11
Jeg ta'r jo tiden hvor den starter i sekunder og trækker fra tiden nu i sekunder (du kender vel til unix timestamp?).

$start = time(); //Skal sættes når du starter botten

//Kør det herunder når du vel have uptime
$seconds = time()-$start;
$days = floor($seconds/86400);
$seconds = seconds - $days*86400;
$hours = floor($seconds/3600);
$seconds = $seconds - $hours*3600;
$minutes = floor($minutes/60);
$seconds = $seconds - $minutes*60;
$seconds = floor($seconds);
$uptime = "<b>Uptime</b> Days: ".$days.", hours: ".$hours.", minutes: ".$minutes.", seconds: ".$seconds;
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:21 #12
Skal bare lige være helt sikker nu... det er ikke så jeg ender med 61 minnutter eller 21332 sekunder vel? :P Den runder vel selv af..
Avatar billede s.timmerman Nybegynder
21. november 2003 - 15:22 #13
Ja - du kan jo evt. prøve scriptet ;-)
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:24 #14
hehe har jeg... men ikke der hvor den kommer til at kører :) derfor fik jeg jo bare en masse nuller :P

tester... x 2
Avatar billede jammerlab Nybegynder
21. november 2003 - 15:32 #15
lol det kan vi li Uptime: Days: 12377, hours: -297048, minutes: 0, seconds: 0
Avatar billede jammerlab Nybegynder
24. november 2003 - 00:04 #16
Nogen ide hvorfor den siger det?
Avatar billede tipsen Nybegynder
24. november 2003 - 00:29 #17
Prøv denne udgave i stedet for - der er knap så mange udregninger:

$start = time(); //Skal sættes når du starter botten

//Kør det herunder når du vel have uptime
$uptime = time()-$start;
$days = (int) ($uptime/86400);
$hours = (int) (($uptime%86400)/3600);
$minutes = (int) (($uptime%3600)/60);
$seconds = $uptime%60;

echo "<b>Uptime</b> Days: $days, hours: $hours, minutes: $minutes, seconds: $seconds;
Avatar billede tipsen Nybegynder
24. november 2003 - 00:29 #18
Rettelse:

echo "<b>Uptime</b> Days: $days, hours: $hours, minutes: $minutes, seconds: $seconds";
Avatar billede jammerlab Nybegynder
24. november 2003 - 00:46 #19
Uptime: Days: 12379, hours: 23, minutes: 45, seconds: 57
Avatar billede tipsen Nybegynder
24. november 2003 - 12:31 #20
Hvad giver følgende linie af output:

echo "Oppetid: $uptime sek.<br>
Start: $start<br>
Nu: " . $time();
Avatar billede tipsen Nybegynder
24. november 2003 - 12:32 #21
Du har ikke fået sat din $start værdi ordentligt - derfor har du problemet.
Avatar billede jammerlab Nybegynder
07. marts 2004 - 16:07 #22
Har midstet alt kode ved et crash... så smid et svar begge 2 så vi kan lukke her :)
Avatar billede jammerlab Nybegynder
17. april 2004 - 15:05 #23
Okaaaayyy s.timmerman du render bare af med de point så :) tak for hjælpen begge 2
Avatar billede jammerlab Nybegynder
07. maj 2004 - 11:17 #24
tipsen smid nu et svar...
Avatar billede tipsen Nybegynder
09. maj 2004 - 12:39 #25
*
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