PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Timestamp von PHP und MySQL (http://www.selfphp.de/forum/showthread.php?t=3277)

BlindCrazyBoy 06.02.2003 17:31:58

Timestamp von PHP und MySQL
 
Hallo @all,

ich habe ein Problem die unterschiedlichen Timestamps von PHP und MySQL gemeinsam umzusetzen:

Zum einen gibt es ja die Funktion time() in PHP, welche mir die aktuelle Unix-Zeit zurückgibt. Andererseits gibts in MySQL den Datentyp 'Timestamp' der allerdings total anders aufgebaut ist wie bei PHP.

Gibt es eine Lösung, so dass PHP mit dem Timestamp aus der MySQL-Datenbank richtig umgehen kann?

Zum anderen bin ich mir nicht sicher ob der Timestamp in MySQL nur beim Erstellen eines neuen Datensatzes gesetzt oder auch beim Ändern eines bestehenden Datensatzes neu gesetzt wird?


Eine von diesem Thema unabhängige Frage wäre noch, wie ich eine Abfrage formuliere, die mir auch dann Datensätze liefert, wenn ich nicht den kompletten Wert einer Zelle eingebe.

Beispiel:
Zelleninhalt im Datenfeld 'Buchtitel': 'Ich lerne PHP'
Suchkriterium: 'PHP

Wie würde die Abfrage Aussehen, dass ich zur Ausgabe des Datensatzes komme?


Ich hoff doch, Euch nicht mit meinem Frageschwall überrumpelt zu haben ;o)


MfG Manu
Tschaui

c4 06.02.2003 18:35:14

Zum time()-Problem: Ich speicher die Zeit generell in einem Feld mit dem Datentyp int(eger). Damit gibt es auch keine Probleme - warum auch.

Zum zweiten: http://www.mysql.com/doc/en/String_c...functions.html
Bsp.: SELECT feld1 FROM tabelle WHERE feld1 LIKE '%php%' heißt: er sucht alle Datensätze, die php enthalten (% sind Platzhalter, also optional)


Viel Erfolg.

MiH 07.02.2003 08:32:16

ja. in mysql eine spalte vom type int(10) erstellen und dann den timestamp dort rein schreiben. du könntest auch die mysql funktion zum erzeugen des timestamps nehmen:

unix_timestamp(now());

BlindCrazyBoy 08.02.2003 19:29:50

Hallo,

so wie sich das hier anhört ist der von MySQL mitgebrachte Timestamp-Datentyp eine Sache die man sich schenken kann?!

Einfachste Möglichkeit ist also den Rückgabewert der time() Funktion in die Datenbank zu schreiben, da PHP diesen Wert im Gegensatz zum MySQL-Timestamp nachträglich verarbeiten kann!?

Welche Möglichkeiten bietet mir den PHP um beispielsweise zum aktuellen Datum bzw. zur aktuellen Zeit Tage, Stunden, Minuten usw. hinzuzuzählen oder abzuziehen? Zum Beispiel (31.08.2002 23:50 + 1 h = 01.09.2002 00:50)


MfG Manu
Tschaui

MiH 10.02.2003 08:46:48

eine stunde dazu:
time() + 60*60;

mysql:
unix_timestamp(now()) + 60*60

eine stunde weg:
time() - 60*60

ein tag dazu:
time() + 60*60*24

5 tage dazu
time() + 60*60*24*5

ich denke das sollte helfen

BlindCrazyBoy 10.02.2003 20:27:01

Hallöle,

mensch, dass man die Sache auch so lösen könnte ist mir garnicht eingefallen. Hab mir da wieder mal voll komplizierte Abläufe vorgestellt und ausgedacht (mit jeder Menge if-Kontrollstrukturen usw... :-)

Gibts denn auch eine Funktion mit der ich ein 'normales Datum wie 10.02.2003 20:26 in die Unix-Zeitschreibweise umwandeln kann?


MfG Manu
Tschaui

c4 11.02.2003 07:42:42

http://www.php.net/manual/en/function.strtotime.php
Freu Dich aber nicht zu früh, wenn Du das unter Windows nutzen willst! Funzt nur unter Unix/Linux!

MiH 11.02.2003 09:33:38

mktime() wandelt ein datum in einen unixtimestamp.
mktime(stunde,minute,sekunde,monat,tag,jahr);

BlindCrazyBoy 16.02.2003 00:37:08

Hiho c4,

also die strtotime-Funktion, welche Du unter Windows angeblich nicht nutzen kannst, funktioniert auf meinem WAMP-Server einwandfrei ;-)


MfG Manu
Tschaui


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:09:33 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.