Timestamp verarbeiten
- HandsUpFreak
- Geschlossen
- Erledigt
-
-
-
Naja, damit lässt sich aber nicht das erzeugen, was ich möchte. Ich möchte gerne einen Timestamp so verarbeiten, dass ein gut sichtliches Datum bzw. eine gut lesende Uhrzeit rauskommt.
Hier:
In der Variable wäre also der Timestamp. Da kommt dann raus: 17:16:18
Dies klappt ja nicht in Pawn daher würd ich gern wissen, ob es generell möglich ist solch ein Resultat zu erreichen. -
new h,m,s;
new string[28];
gettime(h,m,s);
format(string,sizeof(string),"Uhrzeit: %d:%d:%d",h,m,s);
printf("%s",string);Du kannst das auch anders formatieren, jenachdem wie du es möchtest
MfG
-
-
Ich glaube das geht nicht, aber du kannst ja ne http abfrage senden von samp der dir das umwandelt und als string zurückgibt.
-
Wie kann man denn http Abfragen machen und wie sollte man das machen?
Kann man also ne HTTP-Anfrage mit nem GET-Paramenter(Der den Timestamp beinhaltet) an ein PHP-Script senden und wenn dieses dann per echo den verarbeiteten Timestamp ausspuckt den wieder einlesen oder wie soll ich das verstehen? -
Genau so nur statt echo ein return
-
Ok, kannst du mir mal nen Beispiel geben wie es realisierbar ist?
Das würde ich dann in Zukunft öfter anwenden, da es ja an sich echt kompfortabel ist.
http://wiki.sa-mp.com/wiki/HTTP
Aber ich weiß jetzt beim drüberschauen nicht so ganz, wie das verwendet werden soll. -
totaler schwachsinn!
einfach ne funktion erstellen die es ausgibt
wenn ich mich recht dran erinnere, gibt es hier auch sowas.
also einfach mal suchen.und wenn nicht: nen timestamp sind die sekunden seit 1970. schaltjahre etc beachten
-
Naja, so schwachsinn ist das gar nicht. Lieber drück ich einfach ein bisschen Performance auf den Webserver als da irgendwie den SA:MP Server hochgradig komplizierte Aufgaben lösen zu lassen.
Außerdem verbraucht die "date"-Funktion in PHP fast gar nichts an Performance. -
was heißt den hier "hochgradif komplizierte aufgabe" ? das ist ne simple rechnung
-
Naja, wenn du jetzt mit irgendeiner Funktion in PAWN da was weiß ich Schleifen durchlaufen lässt die die Tage, Stunden und Minuten ausrechnen lässt oder so, das frisst ordentlich Leistung^^
-
ich weiß nicht ob du es so haben willst:
new day,month,year,hour,minute,second,str[40];
gettime(hour,minute,second);
getdate(year,month,day);
format(str,sizeof(str),"%d.%d.%d %s%d:%s%d:%s%d",day,month,year, (hour < 10) ? ("0") : (""), hour+0, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second);
//Ausgabe: 17.5.2011 17:35:05Auf jedenfall siehts so vernünftig aus und kannst ganz einfach damit arbiten.
Lg
Simon -
@ Simon hier gibt es eine kürzere Lösung, einfach mal weiter oben schauen. Ich möchte einen bereits vorhandenen(!!!) Timestamp verarbeiten und nicht den aktuellen.
-
ich verstehe das nicht ganz..
möchtest du einen timstamp speichern und später damit arbeiten, möchtest du die aktuelle Zeit+Datum wiedergeben oder liege ich ganz falsch.
Soweit ich es aus dem PHP-code entnehmen kann, speicherst du was in der variable und gibst es als timestamp-format wieder. das ist soweit ich weiß nur mit gettime und getdate möglich und je nachdem wie es wiedergegeben werden soll, musst de es in einem string speichern.
-
Ich ziehe aus der DB eine Spalte, einen Timestamp in dem falle. Dieser Timestamp soll dann in einem Datum wiedergegeben werden. Da dies aber mit PAWN, soweit ich sehe, nicht möglich ist habe ich das ganze mal per PHP probiert:
PHP<?php $timestamp = $_GET['timestamp']; $time = date("d.m.Y - H:i:s", $timestamp); echo $time; ?>
Pawn:
if(!strcmp("/ts",cmdtext,true))
{
HTTP(playerid, HTTP_GET, "www.example.com/tstest.php?timestamp=1305639327", "", "MyHttpResponse");
return 1;
}
public MyHttpResponse(index, response_code, data[])
{
// In this callback "index" would normally be called "playerid" ( if you didn't get it already :) )
new
buffer[ 128 ];
if(response_code == 200) //Did the request succeed?
{
//Yes!
format(buffer, sizeof(buffer), "The URL replied: %s", data);
SendClientMessage(index, 0xFFFFFFFF, buffer);
}
else
{
//No!
format(buffer, sizeof(buffer), "The request failed! The response code was: %d", response_code);
SendClientMessage(index, 0xFFFFFFFF, buffer);
}
}Und siehe da:
-
Also hat es nun geklapptt oder brauchst du noch Hilfe?
-
Nein es hat wunderbar geklappt und ich werd absofort mehr mit der HTTP Funktion arbeiten, vielen Dank an MrMonat der mich darauf gebracht hat aber auch generell an alle anderen.
-
Theoretisch kannste es doch auch so machen:
stock sDate(sFormat[],sTimestamp=gettime())
{
new sString[128];
format(sString,128,"www.example.com/tstest.php?timestamp=%d&format=%s",sTimestamp,sFormat);
HTTP(playerid, HTTP_GET, string, "", "MyHttpResponse");
}BZW. wenn du das format nicht immer ändern willst kannst du auch eine funktion in pawn schreiben ohne HTTP.