1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Di: 15 Juli 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Timestamp/Date-Funktionen

    • Lucian
    • 11. August 2018 um 13:58
    • Erledigt
    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 11. August 2018 um 13:58
      • #1

      Hier ein paar Methoden um Zeitstempel/Datumsstempel in Arma 3 zu verwenden.

      Die Code in fn_timeUnix.sqf berechnet keinen Unix TimeStamp da die Zahlen ansonsten zu Groß werden und Arma bei der Umrechnung Probleme bekommt/ungenau wird.

      Aus diesem Grund kann man entweder einen eigenen Epoch verwenden oder den standart Epoch 2015 verwenden.

      Viel Spaß damit :)

      Code: fn_timeUnix.sqf
      /*
          File:    fn_timeUnix.sqf
          Date:   2017-08-24 22:33:24
          Author: Patrick "Lucian" Schmidt
          Disclaimer: No one is allowed to use and edit my Script except for the DE100-ALTIS.life server and me.
          
          Description:
          Calcs seconds since 1 Feb. 00:00 _startYear(def. 2015)
          
          Note:
          Timerange getting longer mins are getting unpercise
      */
      
      params[
          ["_input", 0, [0,[]]],
          ["_startYear",2015]
      ];
      
      if (_input isEqualType []) exitWith {
          private _d = 0;
          for "_i" from _startYear to (_input select 0) - 1 do 
          {
              _d = _d + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false];
          };
          _d = _d + floor(linearConversion [0, 1, dateToNumber (_input select[0,5]), 0, 365, false]);
          _d *60*60*24+((_input select 3))*60*60+(_input select 4)*60;
      
      };
      private _y = _startYear;
      private _m = 1;
      private _d = 0;
      private _h = 0;
      private _mi = 0;
      private _ticks = _input;
      for "_i" from 0 to 1 step 0 do {
          private _yD = if (_y call BIS_fnc_isLeapYear) then {
              366;
          } else {
              365;
          };
          _ticks = _ticks - _yD*24*60*60;
          if (_ticks < 0) exitWith {
              _d = (_yD*24*60*60 - abs(_ticks))/60/60/24;
          };
          _y = _y + 1;
      };
      private _months = [
          ["Jan",31],
          ["Feb",if (_y call BIS_fnc_isLeapYear) then {29;} else {28;}],
          ["Mrz",31],
          ["April",30],
          ["Mai",31],
          ["Juni",30],
          ["Juli",31],
          ["August",31],
          ["September",30],
          ["Oktober",31],
          ["November",30],
          ["Dezember",31]
      ];
      _ticks = _d;
      {
          _ticks = _ticks - (_x select 1);
          if (_ticks < 0) exitWith {
              _m = _forEachIndex + 1;
              _d = (_x select 1)-abs _ticks+1;
              _h = (_d - floor _d)*24;
              _mi = (_h - (floor _h))*60;
          };
      } forEach _months;
      
      [_y,_m,floor _d,floor _h,round _mi,0];
      Alles anzeigen
      Code: fn_timeToStr.sqf
      /*
          File:    fn_timeToStr.sqf
          Date:   2016-10-30 20:48:50
          Author: Patrick "Lucian" Schmidt
          Disclaimer: No one is allowed to use and edit my Script except for the DE100-ALTIS.life server and me.
          
          Description:
          Transforms time var into a nice looking string.
          Returns time and date in two seperate strings
      
          _mode
          0 - str
          1 - db
          2 - array
      */
      params[
          ["_mode", 0],
          ["_date",life_real_time]
      ];
      private _addZero = {
          params[
              ["_number", 0, [0]]
          ];
          if (_number < 10) exitWith {
              format ["0%1",_number];
          };
          _number;
      };
      
      private _year = _date select 0;
      private _month = [_date select 1] call _addZero;
      private _day = [_date select 2] call _addZero;
      private _hr = [_date select 3] call _addZero;
      private _min = [_date select 4] call _addZero;
      
      private _return = call {
          if (_mode == 0) exitWith {
              format["%1.%2.%3 %4:%5",_day,_month,_year,_hr,_min];
          };
      
          if (_mode == 1) exitWith {
              format["%1-%2-%3 %4:%5:00",_year,_month,_day,_hr,_min];
          };
      
          if (_mode == 2) exitWith {
              [format["%1:%2", _hr, _min],format["%1.%2.%3", _day, _month, _year]];
          };
      };
      
      _return;
      Alles anzeigen
      Code: fn_timeDiff.sqf
      /*
          File:    fn_timeDiff.sqf
          Date:   2017-08-13 01:47:09
          Author: Patrick "Lucian" Schmidt
          Disclaimer: No one is allowed to use and edit my Script except for the DE100-ALTIS.life server and me.
          
          Description:
          Take a look for yourself.
      */
      params[
          ["_date1", [], [[]]],
          ["_date2", [], [[]]]
      ];
      
      private _raw = ([_date1] call life_fnc_timeUnix) - ([_date2] call life_fnc_timeUnix);
      private _left = abs _raw;
      private _week = floor(_left/(60*60*24*7));
      _left = _left - _week*60*60*24*7;
      private _day = floor(_left/(60*60*24));
      _left = _left - _day*60*60*24;
      private _hr = floor(_left/(60*60));
      _left = _left - _hr*60*60;
      private _min = floor(_left/(60));
      _left = _left - _min*60;
      private _sec = _left;
      
      private _ret = call {
          if (_week > 0) exitWith {
              if (_week > 1) then {
                  format["%1 Wochen",_week];
              } else {
                  format["%1 Woche",_week];
              };
          };
      
          if (_day > 0) exitWith {
              if (_day > 1) then {
                  format["%1 Tage",_day];
              } else {
                  format["%1 Tag",_day];
              };
          };
      
          if (_hr > 0) exitWith {
              if (_hr > 1) then {
                  format["%1 Stunden",_hr];
              } else {
                  format["%1 Stunde",_hr];
              };
          };
      
          if (_min > 0) exitWith {
              if (_min > 1) then {
                  format["%1 Minuten",_min];
              } else {
                  format["%1 Minute",_min];
              };
          };
      
          if (_sec > 0) exitWith {
              if (_sec > 1) then {
                  format["%1 Sekunden",_sec];
              } else {
                  format["%1 Sekunde",_sec];
              };
          };
      };
      
      [_raw <= 0,_ret,_raw];
      Alles anzeigen
      Code: fn_timeAdd.sqf
      /*
          File:    fn_timeAdd.sqf
          Date:   2017-08-24 19:45:22
          Author: Patrick "Lucian" Schmidt
          Disclaimer: No one is allowed to use and edit my Script except for the DE100-ALTIS.life server and me.
          
          Description:
          Take a look for yourself.
      */
      
      params[
          ["_time", [], [[]]],
          ["_add", 0, [0]],
          ["_array",false]
      ];
      
      private _unix = [_time] call life_fnc_timeUnix;
      private _newTime = [_unix+_add] call life_fnc_timeUnix;
      
      if (_array) exitWith {
          _newTime;
      };
      [0,_newTime] call life_fnc_timeToStr;
      Alles anzeigen
    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 11. August 2018 um 13:59
      • #2

      Den Disclaimer könnt ihr ignorieren... bin zu faul den raus zu machen :P

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 11. August 2018 um 22:34
      • #3

      Sehr cool!

      Wusste gar nicht das es extra eine BIS Funktion für Schaltjahre gibt (BIS_fnc_isLeapYear) :D

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Ähnliche Themen

    • [Tutorial] Permanenter Personalausweis/Dienstausweis - (V1+V2)

      • Rom
      • 19. Oktober 2016 um 22:22
      • Tutorials & Releases
    • Setting up client...

      • MAVLI
      • 20. Juni 2018 um 12:16
      • Hilfeforum
    • Datenbank Fehler ExtDB3

      • GaNja
      • 17. April 2018 um 12:42
      • Hilfeforum
    • altislife.sql kann nicht hochgeladen werden

      • NeverTim
      • 6. März 2018 um 16:32
      • Hilfeforum

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™