Utiliza la clase DateTime y la extensión intl para lo que quieres hacer:
Código PHP:
Ver original//Estableces la zona horaria
//recibes datos por post
$_POST = [
'y' => '2015',
'm' => '08',
'day' => '05'
];
//Le das formato a los datos recibidos
'%s-%s-%s',
$_POST['y'],
$_POST['m'],
$_POST['day']
);
//creas la fecha que recibiste
$date = DateTime::createFromFormat(
'Y-m-d',
$stringDate
);
//creas un formateador para el idioma
$fmt = new IntlDateFormatter(
"es_ES" ,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
null,
IntlDateFormatter::GREGORIAN,
"EEEE, d 'de' MMMM 'de' yyyy"
);
//muestras la fecha en español
echo utf8_decode($fmt->format($date)); //miércoles, 5 de agosto de 2015
Pasas lo datos por separado pero creo que es mejor si pasas la cadena con la fecha.