$start_date = date('Y-m-d', strtotime(str_replace('/', '-', $query->row('startdate'))));
Hoặc tốt hơn - chỉ cần thay đổi dữ liệu trong cơ sở dữ liệu:
UPDATE `table` SET `startdate` = REPLACE(`startdate`, '/', '-');
... và sau đó chuyển đổi trường thành loại DATE.
---- CHỈNH SỬA ----
Trên thực tế, Đại tá Shrapnel có một điểm ... Tôi đã bỏ qua sự thật rằng ngày cũng cần phải đảo ngược nên nó là YYYY-MM-DD; giả sử ngày ban đầu ở định dạng DD / MM / YYYY, một truy vấn tốt hơn có thể là:
UPDATE `table` SET `date` = CONCAT(SUBSTRING(`date`, 7), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2))
Điều này sẽ đảo ngược các phần thành phần thành một chuỗi có thể được chuyển đổi thành NGÀY ... nó sẽ không hoạt động nếu chuỗi ngày ban đầu không sử dụng các số 0 ở đầu 1/6/2011
chẳng hạn ... sẽ cần phải làm gì đó sáng suốt hơn một chút trong trường hợp đó.