strtotime
делает все возможное, чтобы угадать, что вы имеете в виду, когда задаете строку, но она не может обрабатывать все форматы даты. В вашем примере, вероятно, вы думаете, что вы пытаетесь сослаться на 24-й месяц, который недействителен, и возвращает 0, и эта дата затем считается эпохой Unix (дата, которую вы получили).
Вы можете обойти это, используя функции mktime () и explode () , например:
$date = "24/09/2010";
$dateArr = explode("/",$date);
$timeStamp = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
$newFormat = date("Y-m-d",$timeStamp);