Einzelnen Beitrag anzeigen
  #6  
Alt 28.10.2006, 18:23:32
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: mktime vor 1.1.1970

Zitat:
Zitat von Heinrich Beitrag anzeigen
Hast du noch eine Idee?
Überlege doch mal logisch. Der Timestamp beinhaltet die seit dem 1.1.1970 1:00:00 vergangenen Sekunden...

Ich käme da überhaupt nicht auf die Idee, zu versuchen, ein früheres Datum zu benutzen.

Da die Daten sicher in einer Datenbank gespeichert werden:
http://dev.mysql.com/doc/refman/5.1/...-overview.html
Zitat:
DATE

Datum. Der unterstützte Bereich liegt zwischen '1000-01-01' und '9999-12-31'. MySQL zeigt DATE-Werte im Format 'YYYY-MM-DD' an, gestattet Ihnen aber, wahlweise Strings oder Zahlen in DATE-Spalten einzugeben.

DATETIME

Kombination aus Datum und Uhrzeit. Der unterstützte Bereich liegt zwischen '1000-01-01 00:00:00' und '9999-12-31 23:59:59'. MySQL zeigt DATETIME-Werte im Format 'YYYY-MM-DD HH:MM:SS' an, gestattet Ihnen aber, wahlweise Strings oder Zahlen in DATETIME-Spalten einzugeben.
#

TIMESTAMP[(M)]

Zeitstempel. Der Bereich liegt zwischen '1970-01-01 00:00:00' und einem Zeitpunkt irgendwann im Jahr 2037.

Eine TIMESTAMP-Spalte ist nützlich, um Datum und Uhrzeit einer INSERT- oder UPDATE-Operation aufzunehmen. Standardmäßig wird die erste TIMESTAMP-Spalte in einer Tabelle automatisch auf das Datum und die Uhrzeit der zuletzt durchgeführten Operation gesetzt, sofern Sie nicht selbst einen Wert angeben. Sie können TIMESTAMP-Spalten auch auf die aktuellen Werte für Datum und Uhrzeit setzen, indem Sie einen NULL-Wert zuweisen. Varianten der automatischen Initialisierung und Eigenschaften von Änderungen sind in Abschnitt 11.3.1.1, „TIMESTAMP-Eigenschaften ab MySQL 4.1“, beschrieben.

Ein TIMESTAMP-Wert wird als String im Format 'YYYY-MM-DD HH:MM:SS' zurückgegeben, dessen Anzeigebreite auf 19 Zeichen festgelegt ist. Um den Wert als Zahl zu erhalten, sollten Sie +0 zur Zeitstempelspalte hinzufügen.

Hinweis: Das vor MySQL 4.1 verwendete TIMESTAMP-Format wird von MySQL 5.1 nicht unterstützt. Informationen zum veralteten Format finden Sie im MySQL-Referenzhandbuch für die Versionen 3.23, 4.0 und 4.1.
Für den Fall, daß Du MySQL 4.0 oder kleiner hast:
Zitat:
7.2.2.2. Die DATETIME-, DATE- und TIMESTAMP-Typen
Die DATETIME-, DATE- und TIMESTAMP-Typen sind verwandt. Dieser Abschnitt beschreibt ihre Charakteristiken, wo sie sich ähnlich sind und wo sie sich unterscheiden.

Der DATETIME-Typ wird benutzt, wenn Sie Werte brauchen, die sowohl Datums- als auch Zeitinformationen beinhalten. MySQL ruft DATETIME-Werte ab und zeigt sie an im 'YYYY-MM-DD HH:MM:SS'-Format. Der unterstützte Wertebereich ist '1000-01-01 00:00:00' bis '9999-12-31 23:59:59'. (``Unterstützt'' heißt, dass frühere Werte zwar funktionieren können, dass es aber keine Garantie dafür gibt.)

Der DATE-Typ wird benutzt, wenn Sie nur einen Datumswert brauchen, ohne Zeitanteil. MySQL ruft DATE-Werte ab und zeigt sie an im 'YYYY-MM-DD'-Format. Der unterstützte Wertebereich ist '1000-01-01' bis '9999-12-31'.

Der TIMESTAMP-Typ ist ein Typ, den Sie dafür benutzen können, um INSERT- oder UPDATE-Operationen mit dem aktuellen Datum und der aktuellen Zeit zu stempeln. Wenn Sie mehrfache TIMESTAMP-Spalten haben, wird nur die erste automatisch aktualisiert.

Die automatische Aktualisierung der TIMESTAMP-Spalte geschieht unter einer der folgenden Bedingungen:

Die Spalte wird in einem INSERT- oder LOAD DATA INFILE-Statement nicht explizit angegeben.

Die Spalte wird in einem UPDATE-Statement nicht explizit angegeben, aber ein anderer Spaltenwert ändert sich. (Beachten Sie, dass ein UPDATE, das eine Spalte auf einen Wert setzt, den diese bereits hat, nicht dazu führt, dass die TIMESTAMP-Spalte aktualisiert wird, weil MySQL das Aktualisieren in einem solchen Fall auf Effizienzgründen ignoriert.)

Wenn Sie die TIMESTAMP-Spalte explizit auf NULL setzen.

TIMESTAMP-Spalten abgesehen von der ersten können ebenfalls auf das aktuelle Datum und die aktuelle Zeit gesetzt werden. Setzen Sie die Spalte einfach auf NULL oder auf NOW().

Sie können jede TIMESTAMP-Spalte auf einen Wert setzen, der vom aktuellen Datum und der aktuellen Zeit abweicht, indem Sie sie explizit auf den gewünschten Wert setzen. Das gilt sogar für die erste TIMESTAMP-Spalte. Sie können diese Eigenschaft benutzen, wenn Sie einen TIMESTAMP auf das aktuelle Datum und die aktuelle Zeit setzen wollen, wenn Sie eine Zeile erzeugen, nicht aber, wenn die Zeile später aktualisiert wird:

Lassen Sie MySQL die Spalte setzen, wenn die Zeile erzeugt wird. Das initialisiert sie auf das aktuelle Datum und die aktuelle Zeit.

Wenn Sie nachfolgende Aktualisierungen anderer Spalten in der Zeile durchführen, setzen Sie die TIMESTAMP-Spalte explizit auf ihren aktuellen Wert.

Auf der anderen Seite finden Sie vielleicht mindestens so einfach, eine DATETIME-Spalte zu benutzen, die Sie auf NOW() initialisieren, wenn die Zeile erzeugt wird, und die Sie bei nachfolgenden Aktualisierungen nicht anfassen.

TIMESTAMP-Werte haben einen Wertebereich von 1970 bis irgendwann im Jahr 2037, bei einer Auflösung von einer Sekunde. Werte werden als Zahlen angezeigt. ...
Mit Zitat antworten