It might be over complicating the issue, but I find the easiest way to deal with dates is to convert them into the Julian day format. This date format is a number of days since 1/1/00, and can be treated like any other integer e.g. to add a day, simply add 1! the date conversion is handled easily by the inbuilt functions gregoriantojd() and jdtogregorian() (where gregorian is the standard mm/dd/yyyy system).
If you want to change from mm/dd/yyyy to dd/mm/yyyy which - being English and all I generally do - use this code:
list($m, $d, $y) = explode("/", $mydate);
$displaydate = $d . "/" . $m . "/" . $y;
Hope this helps