Isu Format Tarikh MySQL PHP
Apabila menggunakan datepicker jQuery dengan format tertentu (cth., "08/25/2012"), memasukkan tarikh yang dipilih ke dalam pangkalan data MySQL sebagai nilai tarikh boleh mengakibatkan ralat dan memaparkan nilai lalai "0000-00-00 00:00:00" sebaliknya.
Sebab:
Menurut dokumentasi MySQL, MySQL mengiktiraf nilai tarikh dalam format tertentu, termasuk 'YYYY -MM-DD' atau 'YY-MM-DD'. Format yang digunakan oleh datepicker jQuery ('08/25/2012') tidak diiktiraf secara langsung oleh MySQL.
Penyelesaian:
Terdapat beberapa cara untuk menyelesaikan masalah ini isu:
1. Gunakan AltField untuk Menukar Format:
Konfigurasikan pemetik tarikh untuk menyediakan tarikh dalam format yang disokong menggunakan pilihan "altField" dan "altFormat". Ini mencipta medan tersembunyi yang mengandungi tarikh dalam format yang diingini.
2. Gunakan Fungsi STR_TO_DATE() MySQL:
Fungsi ini boleh menukar rentetan yang diterima kepada nilai tarikh MySQL yang sah. Gunakannya seperti berikut:
INSERT INTO user_date VALUES('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
3. Tukar Date kepada PHP DateTime Object:
Gunakan objek DateTime PHP untuk menukar rentetan yang diterima kepada format tarikh yang PHP faham.
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
4. Manipulasi Rentetan Secara Manual:
Jika tiada pilihan di atas berfungsi, anda boleh memanipulasi rentetan yang diterima secara manual menjadi literal tarikh MySQL yang sah.
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]";
Awas:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ketakserasian Format Tarikh PHP dan MySQL Apabila Menggunakan jQuery Datepicker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!