mmofacts.com

Eigene zeit

gepostet vor 18 Jahre, 8 Monate von Flare
hallo ich habe ma ne frage ich habe schonmal drüber gelesen aber leider nur meinungen und keine lösung dazu gehört...

kann mir mal jemand auf die sprünge helfen wie ich das so machen soll?
weil ich möchte das 1stunde ingame gleich 60 sek ist und 1 taqg ingame soll 23 min sein... nur weis ich jetzt nicht wie ich das genau machen soll...
ich bin schon die ganze zet am überlegen wie das am besten ist...

ein kleines beispiel skript oder ne kleine erklärung wär echt nett ich danke schonmal und wer nur rumnerven will der soll sich um 180 grad drehen und die wand anquatschen

thx schonma
gepostet vor 18 Jahre, 8 Monate von KoMtuR
Also irgendwo beginnt deine Zeitrechnung bestimmt ein mal:

Sagen wir du nimmst 1.1.2000

 

$starttime = mktime(0,0,0,1,1,2000);
$neuerstamp = time() - $starttime;


Nun haste ein neuen Timestamp, der ab den Jahr 2000 läuft. Nun nur noch umrechnen, wie man es halt immer von hand macht.

 

$stunden = floor($neuerstamp / 60);
$tage = floor($stunden / 23);


Das sind nur Ansätze, die du noch erweitern solltest. Soll ja nur ein Gedankengang sein, wie du deine eigene Zeitrechnung machst
gepostet vor 18 Jahre, 8 Monate von mifritscher
Einfach die sekunden vergessen, minuten zu sekunden und stunden zu minuten machen?
Wun wenn du umreichnen musst einfach mit dem Faktor 60 multiplzieren bzw. teilen...
Verstehe nicht ganz wo dein Problem ist...
gepostet vor 18 Jahre, 8 Monate von Kampfhoernchen
Das is so einfach, dass man da net drauf kommt. Mir jedenfalls wär das jetzt auch net eingefallen, ich hätte auch Komturs Lösung vorgeschlagen
gepostet vor 18 Jahre, 8 Monate von KoMtuR
meine lösung hat den vorteil, dass man die zeit nochmal umstellen kann - man weiß ja nie. Klar geht dies sicherlich noch mit der einfacheren Variante in diesem Beispiel. Aber wenn jemand sucht findet er nen anderen Lösungsansatz.

mitfrischers lösungsansatz ister der sicherlich performantere von allen
gepostet vor 18 Jahre, 8 Monate von Flare
hmm das habe ich ja so ungefähr auch schon gehabt das problem ist nur das ich irgendwie nicht genau weiss ob ich nach dieser zeit auch timestamps anlegen kann, sprich wenn man ein ein haus baut das 2tageund5 stunden dauert (ingame) , soll er das auch durch die ingame zeit berechnen...

entweder ist das zu einfach und ich komm nicht drauf oder das ist zu schwer und ich komm nicht drauf *g*

PS: aber schonmal danke das du das so gut mit beispoielen geschrieben hast , weil ich ein prob hatte mit dem skript

EDIT:

ja halt so das es nicht so performentzfressend ist, und kannst das mal bitte in einem kleinen zusammen hängenden skript schreiben, damit ich den sinn verstehe weil ich habe das s oungefähr ausgegeben aber er gibt bei mir immer eine -(MINUS) zahl aus...

Und dann gibts noch ein prob und zwar will ich das ja per java ausgeben (damit es das immer aktuell anzeigt) doch wird das nciht performentz fressend sein wenn er das jede sek erneut durchführt?
gepostet vor 18 Jahre, 8 Monate von KoMtuR
schreib dir doch einfach umwandelfunktionen, welche dann kein Problem weiter darstellen sollte.

Berichtigt mich, wenn ich irgendeinen Fehler im Code produziert hab. Hab das mal auf die schnelle hingeschrieben:
 


function globalToLocalTime($timestamp) {
$rueckgabe = array();

$rueckgabe[0] = $timestamp % 60; //Minuten ingame
$rueckgabe[1] = floor($timestamp / 60); //vorläufige Stunden
$rueckgabe[2] = floor($rueckgabe[1] / 24); //Tage
$rueckgabe[1] = $rueckgabe[1] % 24;

return $rueckgabe;
}

function localToGlobalTime($time) {
//$time ist dieses Array, welches da oben erzeugt wurde

return ($time[0] + $time[1]*60 + $time[2] * 1440);
}

?>


Nun kannst du ganz einfach deine Sachen berechnen, indem du sowas in der Art schreibst:
 

//$bauzeit - array mit den Bauzeiten in der Spielzeit
$globalStamp = time() + localToGlobalTime($bauzeit);
gepostet vor 18 Jahre, 8 Monate von Flare
hmm ok habs so schon zu 70% verstanden (sry aber ich habe davor nie mit zeiten gearbeitet habe sowas nochnie gebraucht habe mich mit dem anderen in php immer beschäftigt...)

danke erstema, also was mache ich aber wenn ich das durch java immer aktuel haben will (also wie ne echte uhr) also mit normaler zeit gehts ja ohne prob aber mit der neuen zeit? einfach mit echo ausgeben oder wie falsl ja ist es nicht bisschen performantzfressent?
gepostet vor 18 Jahre, 8 Monate von KoMtuR
naja mit Javascript kannste dies einfach über so ne uhr machen. musste mal im netz suchen. dann brauchste in javascript noch diese umwandelfunktionen und da musste ein wenig ausgeben.

Performancefressend ist das nicht - zumindest nicht für dich interessant. Am Besten mal bei fertigen Scripten rumstöbern und nicht alles aufn Tablett servieren lassen. Schließlich willst ja auch was lernen
gepostet vor 18 Jahre, 8 Monate von Flare
ja deshalb frage ich ja auch immer nach was gemeint ist damit ich ers mir merken kann und weiss was gemeint ist

weil ich kein gutes uhrzeit tutorial im netzt geunfenhab (also zeit tutorial für php)

Auf diese Diskussion antworten