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
