mktime stimmt nicht

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
  • Hiho


    Ich hab da ein Problem.


    Die Funktion mktime stimmt um 25 Stunden (90000 Sekunden) bei mir nicht (heisst, wenn ich in MySQL SELECT UNIX_TIMESTAMP(Datum) FROM Table Where id=1 mache, wird eine andere Zeit angezeigt, als wenn ich den Timestamp nach dem auslesen printe).


    "Meine" Funktion:



    stock mktime(mhour, mminute, msecond, mday, mmonth, myear)
    {
    static days_of_month[12] = {31,29,31,30,31,30,31,31,30,31,30,31},lMinute,lHour,lDay,lMonth,lYear,lMinuteS,lHourS,lDayS,lMonthS,lYearS;
    if(myear != lYear)
    {
    lYearS = 0;
    for (new j = 1970; j < myear; j++)
    {
    lYearS += 31536000;
    if ((!(j % 4) && (j % 100)) || !(j % 400)) lYearS += 86400;
    }
    lYear = myear;
    }
    if (mmonth != lMonth)
    {
    lMonthS = 0;
    mmonth--;
    for (new i = 0; i < mmonth; i++)
    {
    lMonthS += days_of_month[i] * 86400;
    if ((i == 1) && ((!(myear % 4) && (myear % 100)) || !(myear % 400))) lMonthS += 86400;
    }
    lMonth = mmonth;
    }
    if (mday != lDay)
    {
    lDayS = mday * 86400;
    lDay = mday;
    }
    if (mhour != lHour)
    {
    lHourS = mhour * 3600;
    lHour = mhour;
    }
    if (mminute != lMinute)
    {
    lMinuteS = mminute * 60;
    lMinute = mminute;
    }
    return lYearS + lMonthS + lDayS + lHourS + lMinuteS + msecond;
    }


    Die Zeitangaben stimmen (23.2.2013 13:17:25), konnte ich mit splitter aufteilen und printen.


    Stimmt die Funktion? Bzw. habt ihr eine, die funktioniert?


    MFG



    edit: Vom Server her (mit mktime) kommt die 1361711845 (falsch) und von der MySQL-Tabelle kommt die 1361621845 (richtig)


    edit2: auch wenn ich das Problem umgehen konnte, nimmt es mich trotzdem wunder..