UNIX-Tmesatp

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    wie kann ich den Unix-Timestap in ein normales Datum umrechnen?


    mfg

  • gettime da bekommt man den Unix-Timestap und wie rechnet man den wieder in ein "normales" Datum

  • also ich bräuchte eig sowas wie TAG.MONAT.JAHR STUNDE:MINUTEN

  • Ich weiß wie ich das anders lösen könnte.
    So also ich habe ein Ban und Tbansystem. Läuft über mysql.
    Nun habe ich eine Straflog vor, das heißt ic hspeicher dann auch die Daten immer usw .
    Wenn ich jemand kicke oder permbanne könnte ich ja das Datum in ein String packen das wäre möglich, jedoch nicht bei einem TBan, da ich da ja noch den UNIX-Timestamp brauche :P


    mfg

  • Hä was willst du? Du musst garnichts umrechnen :D:D


    new string[60], hour,min,sec,year,month,day;
    gettime(hour,min,sec); getdate(year,month,day);
    format(string, sizeof string, "%d.%d.%d, %d:%d:%d", day, month, year, hour, min, sec);


    Dann kriegste zum Beispiel "4.6.2011, 14:32:49" raus und was ist daran jetzt kein normales Datum?

  • Hä was willst du? Du musst garnichts umrechnen :D:D


    new string[60], hour,min,sec,year,month,day;
    gettime(hour,min,sec); getdate(year,month,day);
    format(string, sizeof string, "%d.%d.%d, %d:%d:%d", day, month, year, hour, min, sec);


    Dann kriegste zum Beispiel "4.6.2011, 14:32:49" raus und was ist daran jetzt kein normales Datum?



    wenn man keine Ahnung hat Mund zu! Liesm al nach was der UNIX_Timestap ist!


    mfg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Du solltest eigentlich mit der native gettime(); auskommen ;)


    dann erklär mir mal wie ich aus dem timestamp ein Datum kriege wie oben angegeben:
    1307195770

  • Er will einfach einen vorhanden UnixTimeStamp in ein Datum transferieren, wie die date Funktion in php.


    Ich habe da irgendwo mal was vorgefertigtes gefunden, ich suche mal eben.


    Edit:

    Zitat

    Du solltest eigentlich mit der native gettime(); auskommen ;)

    Damit meint, er dass die Funktion gettime den Rückgabewert in Form von einem UnixTimeStamp hat, welchen du dann mit dem aus der DB mit ">" und "<" vergleichen kannst denke ich mal.

    Einmal editiert, zuletzt von 8D ()

  • Er will einfach einen vorhanden UnixTimeStamp in ein Datum transferieren, wie die date Funktion in php.


    Ich habe da irgendwo mal was vorgefertigtes gefunden, ich suche mal eben.


    danke dir endlich mal einer der was Ahnunf hat :P

  • stock mktime(hour,minute,second,day,month,year)
    {
    new timestamp2;
    timestamp2 = second + (minute * 60) + (hour * 3600);


    new days_of_month[12];
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
    {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31};
    }
    else
    {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31};
    }
    new days_this_year = 0;
    days_this_year = day;
    if(month > 1)
    {
    for(new i=0; i<month-1;i++)days_this_year += days_of_month[i];
    }
    timestamp2 += days_this_year * 86400;


    for(new j=1970;j<year;j++)
    {
    timestamp2 += 31536000;
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400;
    }
    return timestamp2;
    }

    Beispiel:
    stock Now()
    {
    new hour,minute,second,year,month,day;
    gettime(hour, minute, second);
    getdate(year, month, day);
    return mktime(hour,minute,second,day,month,year);
    }


    Edit:
    8D: Jap, so wollte ich mich ausdrücken :)

  • Jo aber nach wie vor, will er nichts vergleichen sondern quasi einfach umwandeln. Aber im Gegensatz zu mktime.


    Ich dachte jetzt an cvttimestamp, aber die funktioniert in pawno nicht, ist aber in den libs aufgelistet.


    Ich glaub bei Useful Functions gibts ne "date" funktion, musst dort mal schauen.


  • aber wie kann ich dann den UNIX_Timestamp umwandeln dami :P

  • stock date(zeitpunkt, &hour, &minute, &second, &day, &month, &year) // by Martez
    {
    new h = 0, m = 0, s = 0, da = 1, mo = 1, ye = 1970;
    for(;;) { ye++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { ye--; break; } }
    for(;;) { mo++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { mo--; break; } }
    for(;;) { da++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { da--; break; } }
    for(;;) { h++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { h--; break; } }
    for(;;) { m++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { m--; break; } }
    for(;;) { s++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { s--; break; } }
    hour = h; minute = m; second = s; day = da; month = mo; year = ye; return 1;
    }

  • @Martez schön wie du eine for-schleife so missbrauchst ;)
    oder du nutzt die Mysql funktion FROM_UNIXTIME


    klingt ganz gut ;)


    aber

    format(query, 128," SELECT FROM_UNIXTIME(%d, '%e.%M.%Y %T')",timestamp);
    wenn ic hdasm ache und halt mit allem drum und dran spuckt der mir e.M.Y T aus



    //edit die ganze Fumnktion

    stock date(timestamp)
    {
    new query[128], Get[128];
    format(query, 128," SELECT FROM_UNIXTIME(%d, '%e.%M.%Y %T')",timestamp);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    return Get;
    }

    Einmal editiert, zuletzt von FoL-Community ()