PHP Date und Time werden nicht korrekt gespeichert

Also bei den ersten vier IF Abfragen soll er immer die aktuelle uhrzeit und datum vergeben.

wenn ich das so mach wie du dann stimmt wieder ned :-(
 
Also mein SQL string inst nun wie folgt:

Code:
INSERT INTO stunden (Name, Datum, zeit, status) VALUES ('Antoniadis Triantafilos','2008-04-08','17:04:00','Arbeitszeit gehen')

aber in die DB schreibt er immer noch
0000-00-00 15:04:00

was mich auch wundert es steht als zeit immr 15:04 oder 17:04 drin ? obwohl ich ja mit time() in dem fall die aktuelle zeit zuweise.

Die oben genante sache mit Explode wird nur bei manueller eingabe gemacht.
nochmal der code
PHP:
<?

$name=$_POST['name'];

if(isset($_POST['a_kommen']) && $_POST['a_kommen'] == "KOMMEN")
	{
		//Arbeitszeit kommen
		$datum = time();
		$status = "Arbeitszeit kommen";
	
	}

if(isset($_POST['a_gehen']) && $_POST['a_gehen'] == "GEHEN")
	{
		//Arbeitszeit gehen
		$datum = time();
		$status = "Arbeitszeit gehen";
		
	}

if(isset($_POST['p_kommen']) && $_POST['p_kommen'] == "KOMMEN")
	{
		//pause kommen
		$datum = time();
		$status = "Pause kommen";
	
	}

if(isset($_POST['p_gehen']) && $_POST['p_gehen'] == "GEHEN")
	{
		//pause gehen
		$datum = time(now);
		$status = "Pause gehen";
	
	}
	
if(isset($_POST['absenden']) && $_POST['absenden'] == "Senden")
	{
		//manuelle eingabe
	
		$status = $_POST['art'];
		$datum=explode(".",$_POST['datum']);  // Zerlegt Eingabe in ein Array
		$zeit=explode(":",$_POST['zeit']);
		$datum=mktime($zeit[0],$zeit[1],0,$datum[1], $datum[0], $datum[2]);  // Macht einen Unixtimestamp
	
		if(!isset($_POST['art'])) 
			{
				$error = "Bitte noch die art ausw&auml;hlen!<br><i>(kommen, gehen, Arbeitszeit, pause)</i>";
			}
	}
	
	
if(isset($_POST['yes']) && $_POST['yes'] == "JA KORREKT")
	{

// weiter im Text bis zur query
		$sql = 'INSERT INTO stunden 
                    (Name, Datum, zeit, status) 
                VALUES 
                    (\''.$name.'\',\''.date("Y-m-d",$datum).'\',\''.date("H:m:s",$datum).'\',\''.$status.'\')';  
		$result = mysql_query($sql) or die(mysql_error());
		die($sql);
		header('Location: http://www.sa-holding.de/stunden/index.php?section=uebersicht');
	}


if($error != "")
	{
		die($error);
	}

?>
 
Zuletzt bearbeitet:
17:00:00 ist es auf deinem Rechner.
Minus 1 Stunde Zeitabweichung zur "Normalzeit".
Minus 1 Stunde Sommerzeit.

Daraus wird> 15:00:00

Somit waere mal das Raetsel geloest


(Sorry sitze hier an meinem Linux mit Ammi Tastatur Layout, habe keine dt. Sonderzeichen)

Bei dem anderen habe ich keine Ahnung, sry.
 
also glaub nicht das mein problem was mit der Sommer Winterzeit zu tun hat.

Jetzt zb. ist uaf dem PC 12:56 und auf der Webseite zeigt er immer 12:04 an und das bleibt auch so egal wieviel zeit man verstreichen lässt. Die sekunden gehen einwandfrei nur wechseln die Minuten und Stunden nicht.

Ich weise nun meine Variablen immer einen Timestamp zu
PHP:
$datum = time();
zur prüfung gebe ich den wert wie folgt aus
PHP:
<? echo date("d.m.Y",$datum); ?>
<? echo date("H:m:s",$datum); ?>

in der DB habe ich das feld nun auch auf Timestamp gesetzt.

die SQL abfrage sendet auch einen Timestamp doch in der DB steht da immer nur

0000-00-00 00:00:00
 
So habs hinbekommen das er es "korrekt" in die DB speichert.
Nur geht der Timestamp noch ned richtig.
Dort werden immer nur die Stunden und Sekunden gezählt aber nicht die Minuten? was kann das sein.
 
PHP:
date("H:m:s",$datum);
Das "m" ist falsch, das steht für Monat.
Deswegen bekommst du auch 12:04... 04 steht für April ;)

Richtig wäre ein "i":
PHP:
date("H:i:s",$datum);

Siehe auch dazu: date()
 
Zuletzt bearbeitet:
TATAAAAAA
man ich bin doch ein VOL******EL da schau ich da die ganze zeit druf und seh des kleine dumme m nicht :-(

Vielen dank an alle die tatkräftig mitgeholfen haben.
 
Zurück