La semana para los ingleses empieza en Domingo, por lo tanto los meses muestran los días en el siguiente orden:
Dom | Lun | Mar | Mier | Jue | Vier | Sab
Y en español, la semana empezaría en lunes:
Lun | Mar | Mier | Jue | Vier | Sab | Dom
En el sistema he definido las siguientes variables, y creo que el error puede estar en la parte donde defino el primer día de la semana ($first_weekday), por el tema de la "w".
Código PHP:
//Inicio de las variables
$nombre_mes = date("F",mktime(0,0,0,$z,1,$ano));
$mes = date("m",mktime(0,0,0,$z,1,$ano));
$dia = date("d",mktime(0,0,0,$z,1,$ano));
$hora = date("h");
$minuto = date("i");
$segundo = date("s");
$dias_del_mes = date("t",mktime(0,0,0,$z,1,$ano));
//Muestro el nombre del mes
echo "<center><b>".$meses[($z-1)]." de $ano</b></center>";
//Determinamos el primer día del mes
if ($dia != 1)
{
$first_weekday = date("w", mktime($hora,$minuto,$segundo,$mes,1,$ano));
}
else
{
$first_weekday = date("w", mktime($hora,$minuto,$segundo,$mes,$dia,$ano));
}