Geben Sie das aktuelle Datum im Datum / Uhrzeit-Format mySQL ein


96

Ich habe Probleme, das Datum richtig in meine Datenbank einzufügen.

$date = date('m/d/Y h:i:s', time());

Ich verwende dieses Format und es wird korrekt wiedergegeben, wenn ich es einfüge

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')");

Es scheint nicht erfolgreich zu funktionieren, und die Zeit bleibt 00:00:00. Wenn Sie die Lösung finden könnten, die großartig wäre, danke.


2
Dateposted ist das Datum / Uhrzeit-Format.
CCates

Antworten:


221

Wenn Sie die aktuelle Uhrzeit speichern möchten, verwenden Sie einfach die Funktionen von MYSQL.

mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())");

Wenn Sie dafür PHP benötigen, Y-m-d H:i:sversuchen Sie es mit dem Format

$date = date('Y-m-d H:i:s');
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");

21
Es wird jedoch das Gebietsschema / die Zeitzone des MySQL-Servers verwendet. Wenn Sie Apache / PHP und MySQL auf verschiedenen Servern haben und die Zeitzone in einem von ihnen falsch eingestellt ist, haben Sie unterschiedliche Werte.
Jeff_Alieffson

3
@ Jeff_Alieffson ist richtig. Die Verwendung von UTC_TIMESTAMP()( dev.mysql.com/doc/refman/5.5/en/… ) wird anstelle vonNOW()
Ejaz

Ich habe dasselbe versucht, aber ich erhalte 0000-00-00 00:00:00 und mein Datentyp ist datetime. Hilfe dabei?
user9437856



6

NOW()wird verwendet, um das aktuelle Datum und die aktuelle Uhrzeit in die MySQL-Tabelle einzufügen. Alle Felder mit Datentypen DATETIME, DATE, TIME & TIMESTAMPfunktionieren mit dieser Funktion gut.

JJJJ-MM-TT HH: mm: SS

Demonstration:

Der folgende Code zeigt die Verwendung von NOW()

INSERT INTO auto_ins
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp)
VALUES
(“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW());

5

setzen die typeSpalte benannter datepostedwie DATETIMEund die folgende Abfrage ausführen:

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)


1
     <?php $date= date("Y-m-d");
$time=date("H:m");
$datetime=$date."T".$time;
mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime));
?>

<form action="form.php" method="get">
<input type="datetime-local" name="date" value="<?php echo $datetime; ?>">
<input type="submit" name="submit" value="submit">


1
Willkommen bei Stack Overflow! Gute Antworten erklären und liefern Code. Aktualisieren Sie Ihre Antwort, um eine Erklärung zu erhalten, wie dieser Code funktioniert und warum er die beste Option ist.
Ajean

1

Wenn Sie das Datum von PHP übergeben, können Sie mit der STR_TO_DATE()MySQL-Funktion ein beliebiges Format verwenden . Lassen Sie conseder Sie Datum über HTML-Formular einfügen

$Tdate = "'".$_POST["Tdate"]."'" ;    //   10/04/2016
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')"  ;  
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')");

Das datepostedsollte MySQL- dateTyp sein. oder MySQL fügt
in einigen Fällen 00:00:00 hinzu. Fügen Sie Datum und Uhrzeit besser zusammen in die Datenbank ein, damit Sie mit Stunden und Sekunden rechnen können. ().

$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text .
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')"  ;  

1

Der beste Weg, es einfacher und effizienter zu machen, ist folgender:

CREATE TABLE table_name (
field1,
..
..
time_updated timestamp default current_timestamp
)

Wenn Sie jetzt eine Zeile in eine Tabelle einfügen, können Sie dieses Feld ( time_updated) überspringen, da es mit der aktuellen Zeit als Standardwert gefüllt wird


0

Verwenden Sie einfach mit Ihrer Zeitzone:

date_default_timezone_set('Asia/Kolkata');      
$date=date("Y/m/d h:i:sa");

0

$ date = date ('Ymd H: i: s'); mit dem Typ: 'datetime' funktionierte sehr gut für mich, da ich das ganze Datum und den Zeitstempel drucken wollte.

$ date = date ('Ymd H: i: s'); $ stmtc-> bindParam (2, $ date);


-1

Ich glaube, Sie müssen Ihren Code ein wenig wie folgt ändern, zusammen mit Ihrem Datenbank-Dateityp.

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)");

Hoffe, wird perfekt funktionieren.


-2

benutze das

$date = date('m/d/Y h:i:s', time());

und dann in MYSQL tun

type=varchar

dann werden Datum und Uhrzeit erfolgreich eingefügt


Ihre erste Funktion ist dieselbe wie in der Frage. Und der Rest dieser Antwort rechtfertigt nicht die Wiedereröffnung einer 5 Jahre alten Frage. Bitte erläutern Sie, warum Ihre Lösung Ihrer Meinung nach besser ist als die, die vor 5 Jahren veröffentlicht wurden.
Matthew Ciaramitaro

weil in der alten Frage nicht über Datentyp erklären
Vikas Pandey

-5

Versuche dies

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 

Dadurch wird ein jQuery-Datepicker festgelegt. Die Frage betraf das Einfügen in eine MySQL-Datenbank.
Teepeemm
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.