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..