Если формат всегда такой, я бы попробовал что-то вроде:
list($m,$d,$y) = explode('-', '08-18-2009');
$time = mktime(0, 0, 0, $m, $d, $y);
print date('m-d-Y', $time);
Что касается вашего примера, проблема в том, что функция не работает. Вы должны проверить это так:
if(($time=strtotime('08-18-2009'))!==false)
{
// valid time format
}
else
echo 'You entered an invalid time format';