Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ketakserasian Format Tarikh PHP dan MySQL Apabila Menggunakan jQuery Datepicker?

Bagaimana untuk Menyelesaikan Ketakserasian Format Tarikh PHP dan MySQL Apabila Menggunakan jQuery Datepicker?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 13:37:161029semak imbas

How to Resolve PHP and MySQL Date Format Incompatibilities When Using jQuery Datepicker?

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:

  • Kod yang diberikan dalam soalan terdedah kepada suntikan SQL. Pertimbangkan untuk menggunakan pernyataan yang disediakan dengan parameter untuk mengelakkan kerentanan ini.
  • Pelanjutan mysql_* ditamatkan pada PHP 5.5.0. Gunakan mysqli atau PDO_MySQL sebaliknya.
  • Pertimbangkan untuk menggunakan jenis data DATE dan bukannya DATETIME atau TIMESTAMP untuk menyimpan tarikh.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn