La función setlocale() no funciona al setearlo con el idioma deseado en este caso el español.
El primer paso es consultar si se encuentra instalado en el sistema, ingresando en la terminal el comando:
locale -a
La salida es algo similar a esto:
C C.UTF-8 en_IE.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 es_CO.utf8
Aquí vemos que para español podemos usar es_CO.utf8, el código PHP sería:
setlocale(LC_ALL,"es_CO.utf8"); $string = "24/11/2014"; $date = DateTime::createFromFormat("d/m/Y", $string); echo strftime("%A",$date->getTimestamp());
Si desea instalar un nuevo idioma:
sudo /usr/share/locales/install-language-pack es_ES