bezorg de laatste berichten direct op de desktop
Welkom, Gast
Alstublieft Inloggen of Registreren.    Wachtwoord verloren?

Probleem met timestamp
(1 bezoeker) (1) Gast
Ga naar onderkantPagina: 1
TOPIC: Probleem met timestamp
#4921
Probleem met timestamp 4 Jaren, 5 Maanden geleden Karma: 0
Dit is iets dat gebaseerd is op code van iemand anders, die helaas geemigreerd is en geen internet meer heeft
Ben hier al een paar weken tegenaan aan het hikken.

Als er in file a iets gebeurt, dan wordt een account in "jail" geplaatst. Hierbij wordt een releasetime gedefinieerd.

[code:qhds96tm]
mysql_query("INSERT INTO captives (uid, releasetime, reason) VALUES (" .
implode(",", array_map("sqlesc", array($me[id], $releasetime, $row[jailreason]))). ")") or die(mysql_error());
[/code:qhds96tm]
Is de query die de rij toevoegt aan deze tabel.

Nu probeer ik iets toe te voegen, waarbij een andere speler de eerste weer uit de jail kan halen. Hiertoe wil ik timeleft berekenen (dus het aantal seconden dat het nog duurt voordat de speler automatisch vrijkomt.

Intuitief betekent dit voor mij:

roep releasetime op (timestamp)
bereken timestamp van "nu"
releasetime - nu = timeleft (in secondes)
In code kom ik dan met:

[code:qhds96tm]
$res = mysql_query("SELECT * FROM captives WHERE id=$convict");
$convict=mysql_fetch_array($res);

echo ("id: $convict[id], uid: $convict[uid], releasetime: $convict[releasetime]. reason: $convict[reason]");

//$timeleft= gettimeleft($convict[releasetime]);

//echo ("<p>Timeleft with gettimeleft=".$timeleft.".</p>");

$now=time();

$timetillrelease=$time[time]-$now;
[/code:qhds96tm]

Echter, bij uitvoer is timetillrelease ALTIJD negatief! de regel met gettimeleft is gepikt uit een andere file van dezelfde maker, waar een overzicht wordt gemaakt van captives

[code:qhds96tm]
$res = mysql_query("SELECT * FROM captives ORDER BY releasetime DESC");
while ($row = mysql_fetch_array($res)) {
if ($row[releasetime] <= sqltounix(getgmt())) {
mysql_query("DELETE FROM captives WHERE id = $row[id]");
continue;
}
echo "<tr><td><p style="margin: 0 0 0 0;">". getname($row[uid]) ."</p></td><td><p style="margin: 0 0 0 0;">" . gettimeleft($row[releasetime]) . "</p></td><td><p style="margin: 0 0 0 0;">$row[reason]</p></td></tr>";
}
echo "</table>";
[/code:qhds96tm]

Dit fragment geeft een overzicht van wie in de jail zit en wie niet, mét een goede "timeleft". Echter, als ik gettime gebruik zoals in het eerdere fragment, kom ik in een oneindige loop (of zoiets).

De vraag:
hoe kan ik de timeleft correct bepalen?
wollongong
Nieuwe Gebruiker
Berichten: 0
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
Ga naar bovenkantPagina: 1
Moderators: Rik, Roy