the date function accepts a unix timestamp, ir the number of seconds that have elapsed since midnight 1st jan 1970 (date("U")). You're just giving it a date eith no separators...
you could use mktime(hour, minute, second, month, day, year) to convert your "timestamp" into a unix timestamp and then use that with date(format required,unix timestamp) to get the right answer.
ie break your "timestamp" down to $date['year'], $date['month'] and $date['day'], then do:
$timestamp = mktime (5,0,0,$date['month'],$date['day'],$date['year']);
echo date("j \o\f F Y", $timestamp);