FRAGE zu TIMESTAMP

A5 Infoschlampe

Erfahrenes Mitglied
hi,

ich blick da irgendwie beim timestamp nicht ganz durch?!

also wenn ich einen neuen sql eintrag mache, wird der timestamp automatisch eingefügt - vorhin z.B. die zahl "20020221120727"..

so jetzt will ich aber in meinem php script den aktuellen timestamp erzeugen, um ihn mit der datenbank zu vergleichen (damit man manche sachen z.B. nur einmal am tag oder in der woche machen darf).

wenn ich aber nun mache $aktuelle_zeit=time(); dann bekomme ich z.B. sowas raus: 1014291747 ...?!?!

welches davon ist denn nun die unix-laufzeit in sekunden?
weiss jemand welchen befehl statt time man nehmen muss, damit ich auf den timestampt komme der in meienr datenbank steht (2002022....)?

dann noch eine frage: wie kann ich vom aktuellen timestampt den ich in einer variablen $ts habe z.B., auf das datumsformat...

also 20020221120727 wird zu 21.02.2002 oder so...????!!!!

wer weiss wie das geht???

thx ciao
 
Also. Zunächst einmal ist der Unix Timestamp der, der die Form: 1014291747 hat. Das ist die anzahl der vergangenen Sekunden seit dem Beginn der UNIX-Epoche (Januar 1 1970 00:00:00 GMT) an.

Das andere was du gekriegt hast ist lediglich das datum und die uhrzeit ohne trennung an einander gereiht.
Du kannst die Zeit dann so auslesen:
PHP:
function convert_date ($time_stamp)
{
	$year = substr ($time_stamp,0,4);
	$month = substr ($time_stamp,4,2);
	$day = substr ($time_stamp,6,2);
	$date = $year."-".$month."-".$day;
	return ($date);
}
Analog natürlich für die Uhrzeit.

Im Allgemeinen würde ich dir empfehlen nicht den MySQL timestamp zu nehmen. Ich würde entweder das Feld vom Typ Char oder Int nehmen und da entweder einen Unix Timestamp per PHP reinschreiben (falls int) oder ein Datum einer bestimmten form (YYYY-mm-dd z.b. mit date("Y-m-d") erzeugbar.)

So Long
TheVirus
 
20020221 ist kein Timestamp in diesem Sinne

der mit time() erzeugte Timestimp ist der richtige Unix Timestamp. Zählt die Sekunde ab irgendwas um 1970 :p weiss ich nichtmehr genau!

Ich würde auch in deine DB gleich diesen unix Timestamp eintragen. Wie du Datum in einen timstamp wandelst, steht hier :

int mktime ( int Stunde, int Minute, int Sekunde, int Monat, int Tag, int Jahr [, int is_dst])

Und diesen int wert dann in die DB schreiben.
 
Hab hier was gefunden zum konvertieren des MySQL Timestamps zu nem richtigen Timestamp:
PHP:
$result=mysql_query ("SELECT UNIX_TIMESTAMP(timestamp_column) as
epoch_time FROM table");
$unix_timestamp = mysql_result ($result, 0, 0);

@Fatility: Ha, ich war schneller! *g*

So Long
TheVirus
 
lieber eine saubere tastatur als zu schnell was zu schreiben ;-)

egal, ich danke euch beiden, genau das wollte ich wissen, werds gleich mal ausprobieren :)

... aber vorher muss ich erst putzen
 
Zurück