Ankündigung

Einklappen
Keine Ankündigung bisher.

Server Zeit in am und pm wird falsch angezeigt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Server Zeit in am und pm wird falsch angezeigt

    Moin zusammen,

    ich möchte gerne die (Game)-Server Zeit von meinem Server richtig auslesen.
    Also er sollte auf meiner Seite quasi die Zeit anzeigen, die auch auf dem Server vorhanden ist.

    Die aktuelle Zeit bekomme ich in diesem Format (bsp.) >> 9583463 << und das sollte dann >> 4:22 am << ergeben.
    Ausgegeben wird aber >> 03:34 am <<

    Ich mache das aktuell so:
    PHP-Code:
    date_default_timezone_set('Asia/Kolkata');

    $json json_decode(file_get_contents('https://api.meine.seite/game_time'), true);

    $error $json["error"];
    $time $json["game_time"];
    $timeNew date('h:i a'$json["game_time"]);

    if(
    $error === false){
        echo
    "$time($timeNew)";
    }else{
        echo
    "No Data";

    Ich vermute mal das liegt daran, dass er ja die echte Zeit umrechnen will oder ?
    Der Intervall liegt auf meinem Server bei ca. 10 Sekunden, wenn das weiter hilft ?!

    EDIT: Um es besser zu erklären... 10 echte Sekunden sind 1 Minute in etwa

  • #2
    Stell die Zeit richtig ein, dass wars. Dein Erklärungsversuch mit 10 Sekunden und einer Minute hat alles noch unverständlicher gemacht und hat sicher nichts mit Deinem Zeitproblem zu tun.

    Kommentar


    • #3
      Zitat von Alpha Beitrag anzeigen
      Stell die Zeit richtig ein, dass wars. Dein Erklärungsversuch mit 10 Sekunden und einer Minute hat alles noch unverständlicher gemacht und hat sicher nichts mit Deinem Zeitproblem zu tun.
      Wow ... ganz tolle Hilfe. Vielen dank!

      Eine Zeit IM Spiel die jeder identisch hat auf dem Server ist zwar einstellbar aber 10 Sekunden in unserer Zeit sind in dem Game 1 Minute.
      Also kann ich da nichts einstellen.

      Wenn also mein Server den Wert >> 9583463 << anzeigt ist es >> 04:22 am << für jeden im Spiel.
      Doch er zeigt mir auf meiner Seite nun >> 03:34 am << an.

      Ich finde keine Lösung dies zu berechnen oder halt mit time() oder date() zu arbeiten, damit die InGame Zeit raus kommt.

      EDIT: Und alle 10 Sekunde wird der Wert >> 9583463 << dann um +1 gesetzt. Und somit ist InGame 1 Minute vergangen, obwohl in echt Zeit 10 Sekunden vergangen sind.

      Kommentar


      • #4
        Ok habe es nun mit dem hier gelöst:
        PHP-Code:
        $GameTime = ($time 1) * 60;
        $stunden $GameTime 3600 24;
        $minuten $GameTime 60 60
        Funktioniert nun so wie ich es wollte.

        Kommentar


        • #5
          PlatinSecurity
          Formuliere deine Anfrage so, dass man Sie auch versteht, dann bekommst du eine Antwort, die deinem Problem gerecht ist.
          Motz hier also bitte nicht andere Leute ironisch/sarkastisch an, nur weil du keine Frage formulieren kannst!

          Die entscheidende Information findet sich nämlich erst in deinem Edit Kommentar von #3
          ... um +1 gesetzt. Und somit ist InGame 1 Minute vergangen ...
          Dadurch ergibt sich auch direkt dein Fehler.
          -> $time -> Integer Wert, wobei der Wert 1 = eine Minute ist
          -> date() -> der zweite Parameter ist ein Unix Timestamp, wobei der Wert 1 = eine Sekunde ist

          Lösung wäre dabei also ganz einfach gewesen:

          PHP-Code:
          // Der Wert ist als UTC Referenz zu betrachten, ansonsten gibt es noch Verschiebungen wegen der Zeitzonen
          date_default_timezone_set('UTC'); // set to UTC +/-00:00
          // date_default_timezone_set('Asia/Kolkata'); // dies wäre UTC + 05:30, ist also quatsch

          $json json_decode(file_get_contents('https://api.meine.seite/game_time'), true);

          $error $json["error"];
          $time $json["game_time"];

          // einfach von Minuten in Sekunden umrechnen
          $timestamp $json["game_time"] * 60;
          // Offset nachstellen, da ja 9583463 == 04:22 am sein soll
          // offenbar haben die angefangen mit 1 = 00:00 und nicht mit 0 = 00:00
          // also eine Minute abziehen
          $timestamp $json["game_time"] - 60;

          $timeNew date('h:i a'$timestamp); 

          if (
          $error === false) {
              echo 
          "$time($timeNew)";
          } else {
              echo 
          "No Data";

          Kommentar

          Lädt...
          X