Zaokrąglanie czasu, itd itd...
ogury
28.10.2012
<?php $servers['servercs'] = array('cs', '31.186.86.30', '4005'); require_once 'GameQ.php'; $gq->setFilter('sortplayers', 'score'); $gq = new GameQ; $gq->addServers($servers); $data = $gq->requestData(); echo '<table cellpadding="3"><tr><td><b>Nick</b></td><td><b>Punkty</b></td><td>Czas</td></tr>'; $tab = $data['servercs']['players']; $n = count($tab); for ($i=0;$i<$n; $i++) { echo "<tr><td>".$data['servercs']['players'][$i][name]."</td><td>".$data['servercs']['players'][$i][score]."</td><td>".$data['servercs']['players'][$i][time]."</td></tr>"; } echo '</table>'; ?>
Chciałbym zrobić tak, aby zamiast czasu w sekundach czas był zaokrąglony do całości, i do tego wyświetlał się tak: 0h 35min 6s, teraz wyświetla się tak:
3854.555558273 (w sekundach)
I jak zrobić sortowanie graczy od największej ilości zabić do najmniejszej?
Użytkownik ogury edytował ten post 28.10.2012 12:32
speedkill
29.10.2012
http://php.net/manua...ction.round.php
Godziny to ten czas dzielisz przez 3600 ( / 3600 ).
Minuty tak samo jak godziny tylko przez 60 ( / 60 ).
Sekundy dzielisz modułowo przez 60 ( % 60 ).
Godziny to ten czas dzielisz przez 3600 ( / 3600 ).
Minuty tak samo jak godziny tylko przez 60 ( / 60 ).
Sekundy dzielisz modułowo przez 60 ( % 60 ).
Gość_21977_* 30.10.2012
Ad.1.
Ad.2. [Manual] Sortowanie tablic wielowymiarowych
<? $s=$data['servercs']['players'][$i][time]; $s=intval($s); $ctime=array( array("h", 3600, "h"), array("m", 60, "min"), array("s", NULL, "s") ); $ctimes=count($ctime)-1; for($i=0; $i<$ctimes; ++$i){ $s-=($$ctime[$i][0]=intval($s/$ctime[$i][1]))*$ctime[$i][1]; } $timea=array(); ++$ctimes; for($i=0; $i<$ctimes; ++$i){ if($$ctime[$i][0])$timea[]=$$ctime[$i][0].$ctime[$i][2]; } $time=(empty($timea)?"0s":implode(" ", $timea)); echo $time; ?>
Ad.2. [Manual] Sortowanie tablic wielowymiarowych
ogury
30.10.2012
Sam już znalazłem o wiele prostsze odpowiedzi od waszych:
W przypadku GameQ parametr false odwraca sortowanie...
$seconds = $results['serwer']['players'][$i][time]; $hms = gmdate('H:i:s',$seconds);
$gq->setFilter('sortplayers', array('score',false));
W przypadku GameQ parametr false odwraca sortowanie...
Gość_21977_* 31.10.2012
Tym rozwiązaniem, otrzymasz czas postaci
01:04:14zamiast
1h 4min 14swięc, suma sumarum, niezgodne z tym, co pisałeś w 1. poście.