jogil Skrevet 2. februar 2008 Skrevet 2. februar 2008 Hei, har sittet og puslet litt med ventrilostatus, og ser at denne viser oppetid og innlogget tid i sekunder. Jeg har prøvd meg litt fram, funnet noen script på nettet, fikk gjort om til minutter, men står fast på timer. Dette er hva jeg har klart: $seconds = $stat->m_uptime; $minutes = floor($seconds/60); $secondsleft = $seconds%60; if($minutes<10) $minutes = "0" . $minutes; if($secondsleft<10) $secondsleft = "0" . $secondsleft; VentriloInfoEX1_Stripe( $bgidx, "Server oppetid", "$minutes:$secondsleft minutes" ); Hvordan løser jeg det med timer?
grimjoey Skrevet 2. februar 2008 Skrevet 2. februar 2008 $secondsPerHour = 60 * 60 * 24; if ( $seconds > $secondsPerHour ) { $hours = $seconds / $secondsPerHour; $seconds = $seconds % $secondsPerHour; }
jogil Skrevet 2. februar 2008 Forfatter Skrevet 2. februar 2008 (endret) Takk, men hvordan løser jeg det som skal skrives ut? VentriloInfoEX1_Stripe( $bgidx, "Server oppetid", "$minutes:$secondsleft minutes" ); 1 time = 3600 sekunder ;-) Jeg er ganske ny i PHP Edit: Jeg prøvde meg på: $seconds = $stat->m_uptime; $minutes = floor($seconds/60); $secondsleft = $seconds%60; if($minutes<10) $minutes = "0" . $minutes; if($secondsleft<10) $secondsleft = "0" . $secondsleft; $secondsPerHour = 60 * 60 * 24; if ( $seconds > $secondsPerHour ) { $hours = $seconds / $secondsPerHour; $seconds = $seconds % $secondsPerHour; } VentriloInfoEX1_Stripe( $bgidx, "Server oppetid", "$hours:$minutes:$secondsleft minutes" ); Men dette ble resultatet: Server oppetid 15.8834375:22872:09 minutes Endret 2. februar 2008 av jogil
grimjoey Skrevet 2. februar 2008 Skrevet 2. februar 2008 (endret) Det var riktig bortsett fra at koden jeg skrev må stå først. Rett etter $seconds = $stat->m_uptime; også kan du fjerne "minutes" fra resultatet, ettersom du viser timer:minutter:sekunder Endret 2. februar 2008 av grimjoey
jogil Skrevet 2. februar 2008 Forfatter Skrevet 2. februar 2008 (endret) Nå endret jeg det. $seconds = $stat->m_uptime; $secondsPerHour = 60 * 60 * 24; if ( $seconds > $secondsPerHour ){ $hours = $seconds / $secondsPerHour; $seconds = $seconds % $secondsPerHour; $minutes = floor($seconds/60); $secondsleft = $seconds%60; if($minutes<10) $minutes = "0" . $minutes; if($secondsleft<10) $secondsleft = "0" . $secondsleft; } VentriloInfoEX1_Stripe( $bgidx, "Server oppetid", "$hours:$minutes:$secondsleft" ); Men da blir resultatet: 15.913668981481:1315:41 Edit: Dette blir vel 15 dager, men gjør jeg om de resterende 0.913668981481 dagene til timer? Hadde vært fint om dette ble til Feks: 15 dager, 10:20:30 Endret 2. februar 2008 av jogil
pulse Skrevet 2. februar 2008 Skrevet 2. februar 2008 <?php $seconds = $stat->m_uptime; $days = floor($seconds / 86400); $seconds = $seconds - ($days * 86400); $hours = floor($seconds / 3600); $seconds = $seconds - ($hours * 3600); if ($hours < 10) $hours = "0" . $hours; $minutes = floor($seconds / 60); $seconds = $seconds - ($minutes *60); if ($minutes < 10) $minutes = "0" . $minutes; if ($seconds < 10) $seconds = "0" . $seconds; echo "$days dager, $hours:$minutes:$seconds"; ?>
jogil Skrevet 2. februar 2008 Forfatter Skrevet 2. februar 2008 <?php$seconds = $stat->m_uptime; $days = floor($seconds / 86400); $seconds = $seconds - ($days * 86400); $hours = floor($seconds / 3600); $seconds = $seconds - ($hours * 3600); if ($hours < 10) $hours = "0" . $hours; $minutes = floor($seconds / 60); $seconds = $seconds - ($minutes *60); if ($minutes < 10) $minutes = "0" . $minutes; if ($seconds < 10) $seconds = "0" . $seconds; echo "$days dager, $hours:$minutes:$seconds"; ?> Denne fungerte perfekt, takker og bukker dypt.
Runar0 Skrevet 2. februar 2008 Skrevet 2. februar 2008 Bare en kommentar til koden som pulse posta: Det hadde kanskje vert smartere å bruke modus (%) enn floor(x / y) ettersom at modus er mer egna til dette. Eks: $minutes = $seconds % 60;
grimjoey Skrevet 2. februar 2008 Skrevet 2. februar 2008 (endret) modulo eller modulus heter det http://en.wikipedia.org/wiki/Modulo_operation function modulo ( $a, $b ) { $dividert = $a / $b; $nevner = $a - floor( $dividert ); if ( $modulus == ( $a % $b ) ) print "Yeah!"; return $nevner; } Endret 2. februar 2008 av grimjoey
jogil Skrevet 2. februar 2008 Forfatter Skrevet 2. februar 2008 Bla bla bla, skjønner ikke en dritt av hva dere diskuterer. Men takk for hjelpen. =D Skål!
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå