Sử dụng strtotime để chuyển đổi các chuỗi thành dấu thời gian Unix, sau đó sử dụng date chức năng để tạo định dạng đầu ra chính xác.
Vì bạn đang sử dụng định dạng ngày tháng ở Vương quốc Anh "d / m / Y" và strtotime yêu cầu định dạng Hoa Kỳ, bạn cần phải chuyển đổi nó một cách khác biệt:
$date1 = "28/04/2009";
$date2 = "28-04-2009";
function ukStrToTime($str) {
return strtotime(preg_replace("/^([0-9]{1,2})[\/\. -]+([0-9]{1,2})[\/\. -]+([0-9]{1,4})/", "\\2/\\1/\\3", $str));
}
$date1 = date($dateFormat, ukStrToTime($date1));
$date2 = date($dateFormat, ukStrToTime($date2));