Site icon arthanugraha.com

Merubah format time picker di adminLTE 2 sebelum di simpan di database (PHP)

Beberapa aplikasi yang saya buat menggunakan adminLTE. Ini seperti admin template sejuta umat. Bahkan template yang profesional-pun banyak yang dikembangkan dari adminLTE.

Pada tulisan ini saya mau bahas mengenai salah satu elemen yaitu time picker. Kamu bisa dapatkan elemen time picker di halaman https://adminlte.io/themes/AdminLTE/pages/forms/advanced.html. Oiya, saya menggunakan adminLTE versi 2.

Nah kalau dilihat, tampilannya oke ya. Elemen ini saya gunakan jika saya hanya ingin mengambil waktu atau jam saja. Tentunya di database, type data yang akan menampung juga akan mengikuti. di Database (MySQL) saya menggunakan tipe data “time“.

Namun sayangnya, ketika inputan ini kita kirimkan untuk diproses, kita akan dapatkan peringatan bahwa data yang kita kirimkan tidak dapat diproses di database karena tidak sesuai dengan format yang diminta

Invalid datetime format: 1292 Incorrect time value

Seperti ini errornya di Laravel

Nah, untuk mengatasi error tersebut maka sebelumnya kita harus merubah dahulu format string yang dikirim tersebut untuk menjadi format datetime. Caranya adalah menggunakan metode DateTimeFormat dari PHP dan melakukan perubahan string ke date format dengan menggunakan createFromFormat. Untuk dokumentasi detailnya, bisa dibaca di https://www.php.net/manual/en/datetime.createfromformat.php

Sebagai contohnya adalah sebagai berikut :

$startTime = $request->get('startTime');

$startTime = DateTime::createFromFormat( 'H:i A', $startTime);
$startTime = $startTime->format( 'H:i:s');

Saya asumsikan kita menerima request (startTime) yang berasal dari elemen timePicker adminLTE 2.0. Dan sebelum kita menyimpan ke dalam database dengan tabel yang bertipe data time, kita akan melakukan parsing terlebih dahulu dengan menggunakan metode DateTime.

Oke, semoga bisa membantu teman-teman.

Exit mobile version