[php/mysql] Angegebene Stunden & Minuten in timestamp

djjlx

---???---
ID: 62937
L
9 Mai 2006
599
21
HY!

Hab mal ne Frage!

Ich würde gerne in die DB speichern die aktuelle Zeit + xxh xx min!

für die xx h hab ich die var $stunden die die anzahl der Stunden die hinzugezählt werden solln enthält!

ebenso die var $minuten ...

mit time() bekomm ich aber nur den Timestamp und nun weiß ich nicht wie ich die stunden und min dazuzählen kann.

kann mir da jemand helfen?

Danke

LG
 
PHP:
$time = time()+($stunden*60*60)+($minuten*60)
Du musst die Stunden und Minuten halt einfach in Sekunden umwandeln.
 
das heißt das der timestamp eigentlich die anzahl der sekunden seit 01.01.1970 sind?
 
mysql_query("INSERT INTO trans_auftragaktiv (nick, auftragsid, status, endzeit) VALUES ('$nick', '$aufid', 'aktiv', '$time')")or die (mysql_error());

Tabellentyp timestamp(14)

LG
 
Wieso da jetzt Nullen stehen weiß ich spontan nicht, aber 14 stellen sind für einen Timestamp viel zu wenig. Nimm am besten 32 (dann kannste aber nur Timestamps bis 2038 nutzen ;)) oder mehr.
Hast du dir den Timestamp mal ausgeben lassen, wird dann alles korrekt ausgegeben?
 
Wieso da jetzt Nullen stehen weiß ich spontan nicht, aber 14 stellen sind für einen Timestamp viel zu wenig. Nimm am besten 32 (dann kannste aber nur Timestamps bis 2038 nutzen ;)) oder mehr.
Hast du dir den Timestamp mal ausgeben lassen, wird dann alles korrekt ausgegeben?

14 Stellen sind viel mehr als benötigt..
10 reichen für einige Jahre aus. Dann ist der höchste Timestamp 9999999999.
Bei dem Umrechner den ich benutzt habe war die höchst mögliche Zahl 2147483647 (Höhste INT Zahl) und das war folgendes Datum: 19.01.2038 - 04:14:07

Ich würde aber den Tabellentyp auf INT(10) stellen, ich mag den Typ TIMESTAMP nicht, da der Timestamp dann in ein Datum verwandelt wird (oder verwechsel ich den Typ gerade?)
 
Hmm, hast Recht. Ich hab grad irgentwie falsch gedacht. Ich nutz in meinen Scripts ja nichtmal so viele Zeichen :ugly:
 
also wenn ich mit echo ausgeben lasse kommt der richtige timestamp 1183723188
aber in die db schreibt er 000000000!

LG
 
Entferne in deinem Query die ' oder schreibe deinen Query wie folgt um:

PHP:
mysql_query("INSERT INTO trans_auftragaktiv (nick, auftragsid, status, endzeit) VALUES ('".$nick."', ".(int)$aufid.", ".(int)aktiv.", ".(int)$time.")")or die (mysql_error());

Die ganzen (int) brauchst nicht unbedingt. So wie er jetzt da steht sollte alles gehen und ich bin davon ausgegangen das status mal 1 und mal 0 sein kann und niemals -1 oder sowas.

Und nochwas an die anderen:

INT(10) bringt nichts anderes als jetzt. INT kann max 4294967295 speichern als unsigned, wenn es nicht unsigned ist dann von -2147483648 bis 2147483647.

Also auch net 99999999999
Die Zahl in den Klammern sind nur bei unsigned cerofill interessant.

So habe ich das zumindest in Erinnerung.
 
Der Timestamp-Spaltentyp von MySQL ist nicht zum Speichern von Unixtimestamps geeignet. Ein Blick in die Doku wird das bestätigen. :yawn:
 
Morgen!

Also ich hab den Spaltentyp auf int geändert und jetzt funktionierts!

Jetzt hab ich noch ne Frage!

Ich verwende die VAR page und if ($page=="welcome"){ .... um die einzelnen Unterseite zu verwalten. Es steht ja alles dann in einer Datei. Kann das sein das man trotzdem bei jeder "Unterseite" die
VAR $_GET["xx"] einsetzten muss und diese nicht von ganz oben übernommen werden? Da sonst die VAR aus der url nicht ausgelesen werden!

LG
 
Wenn du eine Seite includest, dann funktioniert $_GET['xx'] innerhalb dieser Seite nicht! Du müsstest dann in der Seite, die die andere includet, erstmal z.b. $xx= $_GET['xx'] schreiben und diese dann über $xx aus der includeten Datei heraus aufrufen (ich hoffe, das war jetzt verständlich ;) )

EDIT: Bzw. müsstest du dann die Seite mit z.B. include("welcome.php?xx=yy"); includen...

MfG
 
Wenn du eine Seite includest, dann funktioniert $_GET['xx'] innerhalb dieser Seite nicht! Du müsstest dann in der Seite, die die andere includet, erstmal z.b. $xx= $_GET['xx'] schreiben und diese dann über $xx aus der includeten Datei heraus aufrufen (ich hoffe, das war jetzt verständlich ;) )[..]

Das ist falsch, wenn du einen Datei includest bedeutet es nichts anderes, als wenn du den Quellcode der zu includenden Datei in dem Quellcode der "Haupt"datei reinschreibst. (natürlich an der Stelle, wo der include stattfindet)

EDIT: Bzw. müsstest du dann die Seite mit z.B. include("welcome.php?xx=yy"); includen...[..]

Wie gesagt wurde geht es so nicht, man muss die Variablen einfach vorher definieren.