> Manuales > Calendario PHP

Finalizamos las modificaciones de la librería del calendario con las que nos permitirán colorear los días dependiendo de si son domingos o si es el día actual.

4) Inteligencia para colorear los días

Por último se ha modificado la librería del calendario para que lo días tengan colores representativos. El rojo para el domingo, el azul para el día actual y el negro para cualquier otro día.

La primera acción tomada para hacer posible el cambio de color en los días ha sido añadir a nuestra hoja de estilos CSS, donde se definen los estilos del calendario, los nuevos estilos para los distintos tipos de días.

.hoy {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 000099
}

.domingo {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 990000
}

.diario {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 000000
}


Luego se ha creado una función que recibe el día que se pretende imprimir y devuelve el color, o mejor dicho, el estilo que se le debe aplicar.

function dame_estilo($dia_imprimir){
    global $mes,$ano,$dia_solo_hoy,$tiempo_actual;
    //dependiendo si el día es Hoy, Domigo o Cualquier otro, devuelvo un estilo
    if ($dia_solo_hoy == $dia_imprimir && $mes==date("n", $tiempo_actual) && $ano==date("Y", $tiempo_actual)){
       //si es hoy
       $estilo = " class='hoy'";
    }else{
       $fecha=mktime(12,0,0,$mes,$dia_imprimir,$ano);
       if (date("w",$fecha)==0){
          //si es domingo
          $estilo = " class='domingo'";
       }else{
          //si es cualquier dia
          $estilo = " class='diario'";
       }
    }
    return $estilo;
}


La función utiliza varias variables globales como son el mes y el año del calendario que se está mostrando, el día que es hoy en número (variable $dia_solo_hoy) y el timestamp del momento actual (variable $tiempo_actual).

Lo primero que se comprueba es si el número de día que se pretende imprimir es el mismo que el número de día de hoy y si el mes y año que se está imprimiendo es el mismo que el mes y año actuales. En este caso es que el día, mes y año concuerdan con lo que devolverá el estilo "hoy". Luego se comprueba si el día de la semana es domingo, devolviendo en ese caso el estilo "domingo". En caso contrario devuelve el estilo "diario".

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual