Hey,
bin gerade dabei mir ein Time Ban System zu machen habe nur noch etwas Probleme mit der Zeit. Ich gebe meine Zeit in Tagen an. Aber ich will das exakte Datum, wann der Spieler entbannt wird in der Datenbank stehen haben. Nur wie bekomme ich dieses Datum ? Habe mir das so ähnlich vorgestellt:
Days = die Tage die ich für den Ban angegeben habe
new Date = getdate + Days;
Ich weiß, dass es so nicht funktionieren wird, aber es müsste doch so ähnlich gehen oder ?
getdate addieren
- Oskaar1994
- Geschlossen
- Erledigt
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
-
-
getdate() gibt einen UNIX Timestamp zurück, sofern man keine Parameter angibt.
Das sind die Sekunden seit dem 01.01.1970.
Speicher einfach
getdate() + AnzahlDerSekundenDieManGebanntSeinSoll
und frag dann ab, ob diese Zahl größer, als getdate() ist, wenn man connected. Wenn ja, liegt die Zeit in der Zukunft. Wenn nein, kann er connecten. -
Gibt nicht gettime die Sekunden zurück ? Und wie mache ich es jetzt genau also mit Minuten, dass ich das Unban-datum bekomme ?
-
TimestampToDate(gettime()+Days*86400, jahr, monat,...
jahr = Das Jahr der entbannung
Etc... -
Das sind die Sekunden seit dem 01.01.1970.
So ist es. getdate() ohne Parameter gibt die Sekunden seit dem genannten Datum zurück.
Du rechnest einfach Sekunden in Minuten um.
TimestampDesAblaufs - getdate() / 60;Das wäre dann die Minutenanzahl der restlichen Zeit.
Ein Datum kannst du mit folgendem Include ausrechnen:http://forum.sa-mp.com/showthread.php?t=347605
Müsste auch eine einzelne Funktion dazu geben.
//E: hier:
http://forum.sa-mp.com/showpost.php?p=334797&postcount=471 -
Habe jetzt Timestamp to date benutzt und zwar so :
TimestampToDate(getdate()+dauer*86400, tyear,tmonth,tday,thour,tminute,tsecond,tGMT,2);
Habe mich für 30 Tage gebannt, aber in der Datenbank zeigt es als Unbandatum den 29.01.1970 an -
Ganz sicher, dass getdate nicht die Zahl des Tages im diesjährigen Jahr angibt? Also Jetz irwas um 50 rum?
Schaut mal lieber im wiki nach.N timeban lässt sich daher nur schlecht mit getdate umsetzen, weil auf ne 365 eben oft ne 1 folgt.
Verwende einfach die oben genannte Methode und nimm gettime, statt getdate -
Ganz sicher, dass getdate nicht die Zahl des Tages im diesjährigen Jahr angibt? Also Jetz irwas um 50 rum?
Schaut mal lieber im wiki nach.N timeban lässt sich daher nur schlecht mit getdate umsetzen, weil auf ne 365 eben oft ne 1 folgt.
Verwende einfach die oben genannte Methode und nimm gettime, statt getdate
Ups. ich meinte auch eigentlich gettime(). xD Kommt davon, wenn man länger kein PAWN programmiert. :X -
Habe jetzt Timestamp to date benutzt und zwar so :
TimestampToDate(getdate()+dauer*86400, tyear,tmonth,tday,thour,tminute,tsecond,tGMT,2);
Habe mich für 30 Tage gebannt, aber in der Datenbank zeigt es als Unbandatum den 29.01.1970 anKönnte mir noch jemand sagen, was ich hier falsch gemacht habe ?
-
Statt getdate gettime benutzen.
Obwohl du am besten auch den timestamp einspeicherst und ned das datum als string.
Das ganze soll ja für den sever moglichst einfach zu verstehen sein und nicht für den user. -
Statt getdate gettime benutzen.
Obwohl du am besten auch den timestamp einspeicherst und ned das datum als string.
Das ganze soll ja für den sever moglichst einfach zu verstehen sein und nicht für den user.
Danke hat funktioniert -
breadfish.de
Hat das Thema geschlossen.