Sejak (sekitar) PHP 5.2, PHP telah memiliki kelas/objek bawaan untuk menangani Tanggal dan Waktu, yang disebut DateTime . Dalam kehampaan, selalu lebih baik menggunakan built-in daripada berdebat dengan detail yang berantakan sendiri.
Konstruktor DateTime (atau fungsi date_create) menerima tanggal dalam format apa pun yang dipahami oleh strToTime. Yang perlu Anda ketahui tentang strToTime adalah voodoo ajaib yang akan mengenali tanggal dengan benar di hampir semua format string. Ketika saya pertama kali menemukan strToTime, saya memiliki reaksi internal yang sama dengan yang Anda alami sekarang ("itu omong kosong/tampaknya tidak dapat diandalkan"). Ini bukan. Ini Hanya Bekerja dengan cara yang pemahaman rapuh Anda tentang tanggal tidak akan pernah (dan jika Anda pikir Anda memahami tanggal, Anda tidak. Percayalah.)
Jadi, tarik informasi dari MySQL sebagai string Tanggal/Waktu, dan segera buat Objek tanggal PHP. Gunakan metode format_tanggal (dengan beberapa konstanta praktis ) ketika/jika Anda membutuhkan tanggal lagi sebagai string.