Bueno viktoria, para que comprendas mejor te envio esto
y te comento que lo que pasa es que cuando se usa la funcion date, y se usa el parametro w, que trae el numero del dia de la semana, esa funcion funciona como un arreglo, es decir, su primer elemento es 0 lo que para nosotros seria 1, y por eso es que no te cuadra el dia que te arroja el sistema con el que tu cuentas normalmente
Soluciones:
1. Crear un array asi
$dias = array("Domingo","Lunes",.......);
Donde la posicion de Domingo en el array es 0 y por ende tendrias que imprimir es el array
2. usar date l que trae el nombre del dia (en ingles) y asi por ej traeria Sunday, y entonces te tocaria si vas a usarlo asi y traducirlo, pues nada mas facil que un array asociativo, asi
$dias2 = array("Sunday"=>"Domingo",.....);
y a la hora de imprimirlo seria echo $dias2[$nombredia]; donde $nombredia captura el nombre del dia en ingles con la función date
3. si no quieres usar nada de eso, captura el numero del dia con w y ya pero tendrias que ponerle una condicion que cuando sea 0 pues $numdia se convierta en 7
Código PHP:
//El domingo es 0 y el sabado es 6
//con w numero del dia y con l nombre del dia
$dias = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
$dia = 4;
$mes = 02;
$anio = 2007;
$nombredia = date("l", mktime(0, 0, 0, $mes, $dia, $anio));
$numdia = date("w", mktime(0, 0, 0, $mes, $dia, $anio));
echo $nombredia;
echo '<br>';
echo $numdia;
echo '<br>';
echo $dias[$numdia];
Espero os sirva
Suerte