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.