Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Zaokrąglanie czasu, itd itd...

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 ogury

    Banned

  • Zbanowany

Reputacja: 43
Pomocny

  • Postów:438
  • Lokalizacja:Internet
Offline

Napisano 28.10.2012 12:32

<?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


#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 29.10.2012 16:54

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 ).
  • +
  • -
  • 1

If you can dream it, you can do it.


#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 30.10.2012 09:17

Ad.1.
<?
	$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

#4 ogury

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 43
Pomocny

  • Postów:438
  • Lokalizacja:Internet
Offline

Napisano 30.10.2012 23:45

Sam już znalazłem o wiele prostsze odpowiedzi od waszych:
$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...

#5 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.10.2012 08:59

Tym rozwiązaniem, otrzymasz czas postaci
01:04:14
zamiast
1h 4min 14s
więc, suma sumarum, niezgodne z tym, co pisałeś w 1. poście.





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych