Masukkan tanggal sekarang dalam format datetime mySQL

97

Saya mengalami masalah saat memasukkan tanggal dengan benar ke dalam database saya.

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

Saya menggunakan format ini, dan, bergema dengan benar, bagaimanapun, ketika, saya menyisipkan

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

tampaknya tidak berhasil, dan, waktu tetap 00:00:00 Jika Anda dapat menemukan solusi yang bagus, terima kasih.

CCates
sumber
2
Dateposted adalah format tanggal waktu.
CCates

Jawaban:

222

Jika Anda ingin menyimpan waktu saat ini, cukup gunakan fungsi MYSQL.

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

Jika Anda perlu menggunakan PHP untuk melakukannya, format itu Y-m-d H:i:sjadi coba

$date = date('Y-m-d H:i:s');
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");
Aaron W.
sumber
21
Tetapi itu akan menggunakan lokal / zona waktu server MySQL. Jika U memiliki Apache / PHP dan MySQL di server yang berbeda dan pengaturan zona waktu salah di salah satunya, U akan memiliki nilai yang berbeda.
Jeff_Alieffson
3
@JeffAlieffson benar. Menggunakan UTC_TIMESTAMP()( dev.mysql.com/doc/refman/5.5/en/… ) lebih disukai daripadaNOW()
Ejaz
Saya mencoba yang sama tetapi saya mendapatkan 0000-00-00 00:00:00 dan tipe data saya adalah datetime. ada bantuan dalam hal ini?
pengguna9437856
Akan lebih bagus untuk menggunakan PDO daripada mysql_query (), bukan?
DaWe
36

Coba ini sebagai gantinya

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

Anda dapat menggunakan CURRENT_TIMESTAMP, fungsi mysql

Diar Selimi
sumber
6

NOW()digunakan untuk memasukkan tanggal dan waktu saat ini ke dalam tabel MySQL. Semua bidang dengan tipe data DATETIME, DATE, TIME & TIMESTAMPberfungsi baik dengan fungsi ini.

TTTT-BB-HH JJ: mm: SS

Demonstrasi:

Kode berikut menunjukkan penggunaan NOW()

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

setel typekolom bernama datepostedsebagai DATETIMEdan jalankan kueri berikut:

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

" datetime " mengharapkan tanggal dalam format seperti ini: YYYY-MM-DD HH: MM: SS

jadi format tanggal Anda seperti itu saat Anda memasukkan.

Jan Hančič
sumber
Jadi saya akan melakukan tanggal ("YYYY / MM / DD HH: MM: SS", time ()) ;?
CCates
Tidak? gunakan tanda hubung (-) bukan garis miring (/).
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
sumber
1
Selamat datang di Stack Overflow! Jawaban yang baik menjelaskan sekaligus memberikan kode. Pertimbangkan untuk memperbarui jawaban Anda dengan menyertakan penjelasan tentang cara kerja kode ini dan mengapa itu merupakan opsi terbaik.
Ajean
1

Jika Anda Melewati tanggal dari PHP, Anda dapat menggunakan format apa pun menggunakan STR_TO_DATE()fungsi mysql. Biarkan konseder Anda memasukkan tanggal melalui formulir html

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

The datepostedharus mysql datejenis. atau mysql akan menambahkan 00:00:00
dalam beberapa kasus Anda lebih baik memasukkan tanggal dan waktu bersama-sama ke dalam DB sehingga Anda dapat melakukan perhitungan dengan jam dan detik. ().

$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
sumber
1

Cara terbaik untuk membuatnya lebih mudah dan efisien adalah ini:

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

Sekarang, saat Anda menyisipkan baris ke dalam tabel, Anda dapat melewati bidang ini ( time_updated) karena akan terisi dengan waktu saat ini sebagai nilai default

Prakash GPz
sumber
0

Cukup gunakan dengan zona waktu Anda:

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

sumber
0

$ tanggal = tanggal ('Ymd H: i: s'); dengan tipe: 'datetime' bekerja sangat baik untuk saya karena saya ingin mencetak seluruh tanggal dan cap waktu ..

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

Rehan
sumber
-1

Saya yakin, Anda perlu mengubah kode Anda sedikit seperti berikut bersama dengan jenis file database Anda.

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

Harapan, akan bekerja dengan sempurna.

tisuchi
sumber
-2

Gunakan ini

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

dan kemudian di MYSQL lakukan

type=varchar

maka tanggal dan waktu akan berhasil dimasukkan

vikas pandey
sumber
fungsi pertama Anda sama dengan yang digunakan dalam pertanyaan. Dan sisa jawaban ini tidak menjamin untuk membuka kembali pertanyaan berusia 5 tahun. Jelaskan mengapa menurut Anda solusi Anda lebih baik daripada yang diposting 5 tahun lalu.
Matthew Ciaramitaro
karena di pertanyaan lama tidak menjelaskan tentang tipe data
vikas pandey
-5

Coba ini

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 
Cristhian Bonilla
sumber
Ini akan mengatur datepicker jQuery. Pertanyaannya adalah tentang memasukkan ke dalam database MySQL.
Teepeemm