Problem mit timestamp aus mktime() im Vergleich zu time()

mrepox

Erfahrenes Mitglied
Hallo Leute,

habe heute mal etwas $timestamp versucht und bin auf etwas seltsames gestoßen.
Wahrscheinlich liegt es an einen Fehler meinerseits, schauts euch mal bitte an:

Ich ermittel erstmal den aktuellen timestamp und formatiere eine Ausgabe zum Darstellen
von Zeit und Datum, eine andere um mit der Funktion mktime() ein Datum aus einem stamp zurück zuführen.
Da ich bei beiden die gleiche Variable als timestamp nutze wundert mich die Ausgabe des ganzen.
Ich hatte gehofft, den gleichen timestamp herauszubekommen.



PHP:
<?php
  $timestamp = time();  
 
  $datetimevalide  = date("G,i,s,n,j,Y",$timestamp);
  $date = date("d.m.Y-H:i:s",$timestamp);
  
  echo $date;echo " Datum zur anzeige auf Website<br>";
  echo $datetimevalide; echo " timestamp vailde Daten für mktime()<br><br>"; 
  
  $stamp = mktime($datetimevailde); 
  echo $stamp;echo " timestamp aus mktime()<br>";
  echo $timestamp;echo " timestamp aus time()";
  ?>

11.12.2007-12:53:38 Datum zur anzeige auf Website
12,53,38,12,11,2007 timestamp vailde Daten für mktime()

1197330818 timestamp aus mktime()
1197374018 timestamp aus time()

Gruß Markus
 
Es war mir nie bewusst das man mktime so verwenden dürfte. Aber wenn man das Datum explodet funktioniert es Prima.

PHP:
  $timestamp = time();  
 
  $datetimevalide  = date("H,i,s,m,d,Y",$timestamp);
  $date = date("d.m.Y-H:i:s",$timestamp);
  
  echo $date;echo " Datum zur anzeige auf Website<br>";
  echo $datetimevalide; echo " timestamp vailde Daten für mktime()<br><br>"; 
  
  list($h,$i,$s,$m,$d,$y) = explode(',',$datetimevalide); 
  $stamp =  mktime($h,$i,$s,$m,$d,$y);

  echo $stamp;echo " timestamp aus mktime()<br>";
  echo $timestamp;echo " timestamp aus time()";
 
Man darf mktime nicht so verwenden, sondern nur mit einzelnen Variablen wie Michael das auch beschrieben hat. Wenn du die lange Zeichenkette übergibst, wird nur die 12 am Anfang erkannt und von mktime als Stunde eingesetzt. Alle weiteren Parameter fehlen, werden also durch aktuelle Uhrzeit und Datum ersetzt. Daher sind die beiden Ausgaben so ähnlich und wirken fast richtig.
 
Ok, ich hatte angenommen das es so gehen würde. Man kann es sich ja mal leicht machen ;)

Danke euch beiden.

Gruß Markus
 
Zurück