anpera.net
https://anpera.dyndns.org/phpbb3/

wieder mal das Zeitproblem...
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4570
Seite 1 von 1

Autor:  Raigar [ Mo 16 Jun, 2008 23:22 ]
Betreff des Beitrags:  wieder mal das Zeitproblem...

Bevor ich gesteinigt werde, ja ich habe die Suchfunktion benutzt und auch Beiträge gefunden mit Personen die auch das Problem haben. Seitdem ich die 0.9.7 Version auf PHP 5 umgeschrieben habe friert meine Zeit ein, wenn ich 1 Stunden Tage haben möchte. Ich habe von Eliwood gelesen das man ein 64 Bit Betriebssysteme bräuchte.
Gibt es keine Alternativen bzw Änderungen? Ich finde keine gescheite Lösung...denn der wechsel zu nem Server der PHP4 Unterstützt um alles wieder abzuändern ist auch nich das wahre...ebenso wie zu nem besseren zu wechseln nur für 1 Stunden Tage.

mfg Raigar

Autor:  Kevz [ Di 17 Jun, 2008 00:01 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Siehe den Changelog, PHP5 Änderungen.

Und Du hättest mit den richtigen Suchwörtern, auch eine Antwort auf deine Frage erhalten.

Autor:  Raigar [ Di 17 Jun, 2008 00:26 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Kevz hat geschrieben:
Siehe den Changelog, PHP5 Änderungen.

Und Du hättest mit den richtigen Suchwörtern, auch eine Antwort auf deine Frage erhalten.

Hallo Kevz,
die änderungen für PHP 5 habe ich wie gesagt bereits vorgenommen. Die Zeit läuft auch soweit, nur eben nicht bei 24 oder mehr Spieltagen pro Realtag. Daher habe nach Suchwörter wie "Zeit bleibt stehen" usw gesucht.

Nach was hätte ich denn Suchen müssen? *blöd frag*
wenn du mir einen Beitrag zeigen könntest, der mir eine Antwort auf die Frage geben würde, wäre ich dir sehr dankbar.

Autor:  Eliwood [ Di 17 Jun, 2008 09:28 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Das Zeitproblem hat, nicht, wie Kevz sagt, was mit PHP5 zu tun - sondern mit der Plattform, auf dem dein Server lauft, oder mit dem Betriebsystem - je nach dem. Die Berechnung für die Spieltage sorgt bei zu hoher Anzahl zu einem Pufferüberlauf bei 32-Bittigen Zahlen. Das heisst, dass das ein grundlegendes Problem von LoGD ist und bisher noch kein Lösungsansatz existiert - abgsehen davon, entweder das Betriebsystem auf 64-Bit umzurüsten (Sofern es die Hardware unterstützt), oder die Serverhardware und das Betriebsystem auf 64-Bit umrüsten. Hast du aber glaub schon gelesen. :)
Es gibt natürlich auch eine dritte Lösung. Du verzichtest ganz einfach auf überflüssig-vielen Spieltage. Oder nimmst nur 23 pro Tag. Oder 22. Je nach dem, was halt geht... ;)

Autor:  Kevz [ Di 17 Jun, 2008 10:57 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Entschuldige.

Ich bezog seine Fragestellung auf das Allgemeine Problem bez. des einfrierens der Zeit. Nicht auf die Anzahl der Spieltage pro Kalendertag.

Autor:  Raigar [ Mi 18 Jun, 2008 17:58 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Eliwood hat geschrieben:
Das Zeitproblem hat, nicht, wie Kevz sagt, was mit PHP5 zu tun - sondern mit der Plattform, auf dem dein Server lauft, oder mit dem Betriebsystem - je nach dem. Die Berechnung für die Spieltage sorgt bei zu hoher Anzahl zu einem Pufferüberlauf bei 32-Bittigen Zahlen. Das heisst, dass das ein grundlegendes Problem von LoGD ist und bisher noch kein Lösungsansatz existiert - abgsehen davon, entweder das Betriebsystem auf 64-Bit umzurüsten (Sofern es die Hardware unterstützt), oder die Serverhardware und das Betriebsystem auf 64-Bit umrüsten. Hast du aber glaub schon gelesen. :)
Es gibt natürlich auch eine dritte Lösung. Du verzichtest ganz einfach auf überflüssig-vielen Spieltage. Oder nimmst nur 23 pro Tag. Oder 22. Je nach dem, was halt geht... ;)

Nun gut dann werd ich auf die 23 Spieltage Variante zurückgreifen
Vielen Dank für deine Antwort ^^

Autor:  Linus [ Mi 23 Jul, 2008 19:27 ]
Betreff des Beitrags:  Re: wieder mal das Zeitproblem...

Ich hab nun mittlerweile drei LoGD (0.97er) von PHP4 auf PHP5 umgestellt, und in allen wo der Spieltag auf 1 Realstunde (24 Spieltage pro Realtag) eingestellt war gab es dieses Problem mit dem Einfrieren der Uhr. Liegt nach weiteren Tests die ich gemacht habe aber nicht am 32-Bit-Betriebssystem sondern einfach an der PHP-Funktion strtotime() die sich in PHP5 nun doch anders verhält als unter PH4.

In der Funktion convertgametime:
$this->bbcode_second_pass_code('', '$time=strtotime(date("Y-m-d H:i:s",$time)."+".(23-$multi)." hour");')
würde bei der Einstellung 24-Spieltage resultieren:
$this->bbcode_second_pass_code('', '$time=strtotime(date("Y-m-d H:i:s",$time)."+".(-1)." hour");')

und eben mit diesem +(-1) kommt die strtotime() nicht mehr klar.

hier nun meine komplette convertgametime():
$this->bbcode_second_pass_code('', 'function convertgametime($intime){
// Hehe, einen hamwa noch, einen hamwa noch: by JT & anpera
$multi = getsetting("daysperday",4);
$offset = getsetting("gameoffsetseconds",0);
$fixtime = mktime(0,0,0-$offset,date("m")-$multi,date("d"),date("Y"));
$time=$multi*(strtotime(date("Y-m-d H:i:s",$intime))-$fixtime);
$time=strtotime(date("Y-m-d H:i:s",$time)."+".($multi*date("I",$intime))." hour");
$time=strtotime(date("Y-m-d H:i:s",$time)."-".date("I",$time). " hour");
if($multi<=23) $time=strtotime(date("Y-m-d H:i:s",$time)."+".(23-$multi)." hour");
else $time=strtotime(date("Y-m-d H:i:s",$time)."-".($multi-23)." hour");
return $time;
}')

und damit funktioniert es auch auf einem 32-Bit Server (bei mir OpenSuse 10.2), PHP5 und 24-Spieltagen pro Realtag ;)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/