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.


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')");

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



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

5

setel typekolom bernama datepostedsebagai DATETIMEdan jalankan kueri berikut:

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

1

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

jadi format tanggal Anda seperti itu saat Anda memasukkan.


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">


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')"  ;  

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


0

Cukup gunakan dengan zona waktu Anda:

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

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


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


-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


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?>')); 

Ini akan mengatur datepicker jQuery. Pertanyaannya adalah tentang memasukkan ke dalam database MySQL.
Teepeemm
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.