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.

CCates
quelle
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')");
Aaron W.
quelle
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
36

Versuchen Sie dies stattdessen

$date = date('Y-m-d H:i:s');
Erik Giberti
quelle
6

Sie können die MySQL-Funktion CURRENT_TIMESTAMP verwenden

Diar Selimi
quelle
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());
Gaurang
quelle
5

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

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)
Abdullah
quelle
1

" datetime " erwartet, dass das Datum wie folgt formatiert wird : JJJJ-MM-TT HH: MM: SS

Formatieren Sie Ihr Datum also beim Einfügen so.

Jan Hančič
quelle
Also würde ich Datum machen ("JJJJ / MM / TT HH: MM: SS", Zeit ());?
CCates
Nein? Verwenden Sie Bindestriche (-) und keine Schrägstriche (/).
Jan Hančič
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">

PratapSingh Hajari
quelle
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')"  ;  
Salem
quelle
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

Prakash GPz
quelle
0

Verwenden Sie einfach mit Ihrer Zeitzone:

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

quelle
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);

Rehan
quelle
-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.

Tisuchi
quelle
-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

Vikas Pandey
quelle
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?>')); 
Cristhian Bonilla
quelle
Dadurch wird ein jQuery-Datepicker festgelegt. Die Frage betraf das Einfügen in eine MySQL-Datenbank.
Teepeemm