Zeit ausgeben und speichern bei anmeldung

Brian Folte

Angesehenes Mitglied
Hallo. Nachdem ich nun die anderen Probleme alle gelöst habe, ist mir aufgefallen das ich die Zeit bei der Anmeldung nicht mitspeicher und in den Userprofile auch nicht steht wann er sich angemeldet hat.

Nun habe ich in meiner Datenbank erstmal ein Feld hinzugefügt namens time
in der datenbank sieht es so aus:
Field Type Attributes Null Default Extra
time int 11 NO 0
soweit müßte es ja eigendlich richtig sein.

so nun kommt das problem. wie muß ich das mit ins anmeldeformular reinnehmen?
etwas so?
$time=time();
mysql_query("INSERT INTO user ( time)
VALUES ('$time')");


also ausgeben müßte ja eigendlich so klappen:
<? echo date('d.m.y',$row[time]) ?>

nur ich weiß halt nicht wie ich es zum speichern bringen soll.
sowie ich auch nicht weiß ich es machen soll damit die anderen user sehen wer online ist und wer nicht also das jeder user der zb. 10 min auf der seite nicht in bewegung war dann automatisch rausgenommen wird aus der liste. lg brian
 
habe das problem noch nicht ganz lösen können aber bin schon ein bisschen weiter.
in meiner datenbank wird die zeit nun ungefähr so gespeichert:
1127908533
so in dem profil wird es dann so ausgegeben:
01.01.70
irgendwie stimmt die zeit angabe aber nicht
sad.gif
wieso auch immer. das ist jetzt nämlich das problem
in der anmelde seite habe ich das eingefügt:
$time = time();
mysql_query("

INSERT INTO user (login, passwort, name, vorname, nummer, email, strasse, plz, ort, time)

VALUES ('$login', '$passwort', '$name', '$vorname', '$nummer', '$email', '$strasse', '$plz', '$ort', '$time')

eingefügt habe ich da oben das $time = time(); und unten drine dann natürlich auch nur time so nur irgendwo muß ja dann da noch ein fehler sein? nur wo? habe ich wieder irgendwas vergessen? zb. wie er die zeit speichern soll?

den zum ausgeben im profil verwende ich das hier: <? echo date('d.m.y',$row[time]) ?>
und da steht ja wieder was von d.m.y also muß ich ja was vergessen haben. wäre schön wenn mir jemand schnell helfen könnte damit ich heute wenigstens damit noch fertig werde. lg brian
 
Hallo!

Habe jetzt gerade nicht die Möglichleit es zu testen, aber:

1. Warum vergibst Du nicht einfach einen MySql tiemstamp, dann muß Du nichts speichern und MySql macht die Arbeit für Dich. Du kannst dann das Datum nach belieben auslesen und ausgeben.

2. Der Datentyp INT und der Wert 11 scheinen mir falsch. Nehm doch einfach den Datentyp varchar(13) dann sollte es funktionieren.

Gruß

Sascha
 
habe es jetzt mit varchar 13 probier so geht es leider auch nicht.
ich würde es ja schon mit dem timestamp machen nur ich weiß nicht wie das geht
unsure.gif
könntest du mir da zufälligerweise kurz helfen? also sagen wie das geht? lg brian
 
Hallo!

Du änderst Dein Datums-Feld von INT auf den Typ timestamp. Dann schreibt MySql automatisch ein Datum rein, wenn der Datensatz angelegt wird.

Auslesen kannst Du das Datum wie gewohnt, allerdings ist es kein timestamp wie Du Ihn von PHP kennst. Es sind Datum und Uhrzeit aneinander gereiht.

und so kannst Du es umwandeln.

Cu

Sascha
 
habe es nun in timeatamp umgeändert. aber jetzt stehen nur lauter 0000 da. lg brian
so sieht es aus:
Field Type Attributes Null Default Extra Action
time timestamp(14) Yes NULL
 
Feldtyp INT, Länge 11

Den aktuellen Wert erhällst Du so:

CODE
$jetzt = strtotime('now');



Bei der Ausgabe kannst den Wert dann beliebig formatieren:


CODE
date("d.m.Y, H:i", $results_news[datum])



d
Tag des Monats
01-31

j
Tag des Monats
1-31

w
Numerischer Tag einer Woche
0 = Sonntag

m
Monat
01-12

n
Monat
1-12

Y
Jahreszahl vierstellig
1999 oder 2003

y
Jahreszahl zweistellig
99 oder 03

G
Stunden
0-23

H
Stunden
00-23

i
Minuten
00-59

s
Sekunden
00-59

t
Anzahl der Tage des akt. Monats
28-31

W
Wochennummer
42

z
Tag des Jahres
0-365



CODE
$datumArr = getdate($variable);
$datumArr[weekday];



seconds
Anzahl der Sekunden
0-59

minutes
Anzahl der Minuten
0-59

hours
Anzahl der Stunden
0-23

mday
Numerischer Tag des Monats
1-31

wday
Numerischer Wochentag
0 (Sonntag) 6 (Samstag)

mon
Monatszahl
1-12

year
Vierstellige Jahreszahl
1999 oder 2005

yday
Numerischer Tag des Jahres
0-365

weekday
Ausgeschriebener Wochentag
Montag-Sonntag

month
Ausgeschriebener Monatsname, wie Januar oder März
Januar-Dezember

0
Sekunden seit der Unix Epoche
z.b. 2147483647




Was ich immer wieder benötige, habe ich mir hier bereitgestellt: darin.ch/tutorial/
 
so nun habe ich es so gemacht:
<? echo date("d.m.Y, H:i", $results_news[time]) ?>
also um das datum auszu lesen und in der datenbank verwende ich gerade
int (11)
und nun bekomme ich folgenes datum (habe mich gerade da neu angemeldet)
01.01.1970, 01:00
lg brian
 
Welchen Wert hast denn in 'time'?

pferde.ch/test/stamp.php

Diese Seite gibt Dir jeweils den aktuellen Timestamp aus. Im Feld kannst einen beliebigen Stamp eingeben und sehen was es für ein Datum ist. Damit kannst kontrollieren ob Dein Wert in der DB korrekt oder eben falsch ist...
 
Zurück
Oben