Puedes usar:
Se usan arrays para contener los nombres de la semana (y en este caso añadí los de los meses) .. Los arrays son iniciados desde el indice 1 .. (e de ahi el 1=> .. ).
Código PHP:
<?php
// tu dato fecha de tu base de datos .. esto es un ejemplo . usa tus $dato_fecha_bd=$row['fecha'];
$dato_fecha_bd='2003-06-01';
//Dia de la semana array
$dia_semana=Array(1=>"Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo");
//Dia mes en castellano.
$mes_nombres=Array(1=>"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Nobiembre","Diciembre");
// dividir el string por "-" para obtner sus dia,mes,año por separado en un array.
$parametros=explode("-",$dato_fecha_bd);
$dia=$parametros[1];
$mes=intval($parametros[2]); // Obtener el intero del string "01" por ejemplo
$year=$parametros[0];
$dia_semana_numerico=date('w',$dia);
// formar la fecha de salida .. Se usa como indice del array $dia_semana el dia de la semana segun orden cronologico.
echo 'La fecha de hoy es: '.$dia_semana[$dia_semana_numerico].', '.$dia.' de '.$mes_nombres[$mes].' del '.$year;
?>
Tambien puedes usar setlocate() con el pais sp_SP o es_ES (e incluso cl_CL) para ajustar las preferencias de fechas en el idioma del pais q uses .. Esto no se como se comportará con los datos q envies usando alguna funcion de Mysql para formatear la fecha como el DATE_FORMAT() de Mysql ...
Un saludo,