Calendario PHP, revisión 2010

  • Por
Diversos cambios en la librería PHP para la creación de un calendario que permite seleccionar cualquier fecha de cualquier año. Lo que se llamaría un date picker, realizado con PHP y un poco de Javascript.
He pasado varias horas revisando el Manual de Calendario PHP, tanto su texto como los scripts que se ofrecían a los lectores con el código fuente de los ejemplos. Resulta que el texto y el script del calendario fue realizado en 2002 y después de varios años sin actualizarlo, había que darle un repasito, porque la verdad es que había varias cosas que no estaban del todo bien.

Como primer paso he revisado el texto de algunos artículos y creado el PDF para descarga de nuevo. A continuación he revisado los scripts que había realizado yo mismo y he corregido varios errores, algunos leves y otros un poco más importantes. No creo que esté ahora todo 100% correcto, pues siempre hay cosas que se pueden mejorar, pero al menos creo que el código tiene bastante más calidad.

Además, he agrupado todos los códigos del calendario, creados por distintos autores y en distintos momentos, en un único archivo para descarga, lo que facilita las cosas para que los usuarios de DesarrolloWeb.com no gasten sus descargas disponibles, o gasten las mínimas posibles.

Además, he incorporado una serie de cambios rápidos que son bastante simples pero que aportan un poco más de calidad a este script para la creación de un "date picker" o selector de fecha, creado en PHP y con un poquito de Javascript, el esencial para que funcione bien en todos los navegadores y nos compliquemos lo mínimo con la programación del lado del cliente.

A continuación voy a colocar una lista de las cositas que he modificado o actualizado con respecto al código publicado en años anteriores.

  • He colocado una imagen de fondo en los INPUT donde se escribe la fecha seleccionada, con un icono de un calendario, para que visualmente se aprecie que ese campo de texto es especial y que hay que rellenarlo con una fecha elegida a través del calendario.
  • He realizado un pequeñito script Javascript para que no se pueda escribir a mano la fecha en el campo INPUT, sino que se deba abrir la página del calendario para seleccionarla en él.
  • He cambiado la forma con la que se abre el calendario, antes era a través de un botón y ahora lo he hecho a través de un clic en el INPUT.
  • He actualizado el código HTML que se genera al abrir el calendario, para hacer que tenga mejor definidas las clases de estilos CSS, de modo que sea más fácilmente configurable a través del archivo de los estilos.
  • He incorporado algunos cambios en el archivo de estilos CSS del calendario. Estos estilos incluyen cosas como sustitución de texto, para ir adelante y atrás en los meses, por iconos con flechitas. Algunos colores para distintos elementos, etc.
  • He corregido algunos asuntos en el código HTML generado, que tenía algunas cosas incorrectas, como etiquetas que faltaban, atributos necesarios omitidos, etc.
Nota: En la descarga de los archivos del calendario PHP se ofrecen varias versiones del sistema para hacer el calendario. Algunas son más básicas que otras, pero la que se ha actualizado y mejorado como se explica en este artículo es la que está en el directorio "calendario-revision-2010".

Sobra decir que todavía se podrían hacer muchas otras cosas para mejorar este script, pero creo que al menos esta revisión será suficiente para que el código tenga un poco más de calidad. Habíamos recibido alguna queja sobre ese punto y la verdad es que nosotros a lo largo de los 8 años que se habían pasado sin actualizar el calendario también hemos cambiado nuestras costumbres de codificación. Así que no estaba de más dedicarle un poco de atención a este asunto.

Nada más por ahora. Simplemente invitar a las personas que utilicen este calendario a enviarnos las modificaciones que vayan realizando, para incorporarlas como artículos en este manual y que otros desarrolladores puedan beneficiarse también.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Orion59

22/2/2011
Como utilizar los datos del calendario
Me parece perfecto el Calendario, de echo es lo que estaba buscando para una web que estoy haciendo que se basa en en un control de Horarios de Personal y que utiliza MysQL COMO BASE DE DATOS, LA cuestion es que no se como introducir los datos de fecha inicio y fecha final en la tabla de la base de datos,Os agradeceria una orientacion. Gracias

pablo_koba

03/4/2011
Porque NO inserta la fecha seleccionada en la BD?!
Serian tan amables de explicar como insertar la fecha seleccionada en la Base de Datos. Muchos han preguntado lo mismo, lo mínimo es que deberian guiar con esto. Muchas gracias.

diazleal

25/5/2011
como insertar la fecha a la BD?
muy bueno pero no sirve de nada si no podemos manipular la fecha, expliquen como insertar a la BD o manipular la fecha seleccionada por favor, gracias

sneyder

09/11/2011
COMO SE INSERTA A LA BASE DE DATOS
me podrian hacer el favor de como manipular la fecha para insertarla en la base de datos
Gracias

pita1958

04/3/2012
función para cambiar fecha para mysql
<?php
/* cambia el formato de la fecha generada por calendario (d/m/aaaa), que recibe por parametro
* @params string $fecha
* return string
*/
function cambiar_fecha1($fecha)
{
$var = explode("/",$fecha);
$dia = array(1 => '01', 2 => '02', 3 => '03', 4 => '04', 5 => '05',
6 => '06', 7 => '07', 8 => '08', 9 => '09', 10 => '10',
11 => '11', 12 => '12', 13 => '13', 14 => '14', 15 => '15',
16 => '16', 17 => '17', 18 => '18', 19 => '19', 20 => '20',
21 => '21', 22 => '22', 23 => '23', 24 => '24', 25 => '25',
26 => '26', 27 => '27', 28 => '28', 29 => '29', 30 => '30',
31 => 31);
$mes = array(1 => '01', 2 => '02', 3 => '03', 4 => '04', 5 => '05',
6 => '06', 7 => '07', 8 => '08', 9 => '09', 10 => '10',
11 => '11', 12 => '12');
if($var[0] > 0)
{
$dia1 = $dia[$var[0]];
}
if($var[1] > 0)
{
$mes1 = $mes[$var[1]];
}
return $var[2]."-".$mes1."-".$dia1;
}

?>

cubboo

17/4/2012
Guardar como variable la fecha de javascript a php
Por favor digan como podemos utilizar la fecha creada en el textbox, llevo todo el dia revizando el codigo probando cosas, pero no puedo porque la variable de la fecha final se encuentra dentro de una funcion en javascript y para pasar variables de javascript a php puedo pero fuera de las funciones, como saco de la funcion el valor??? he aqui el codigo que me sirvio para pasar variables de javascript a php:

Necesito pasar la variable a la base de datos!!:

<?php

echo '<head>

<title>'.$_SERVER[PHP_SELF].'</title>

</head>

<html>

<body>';
echo '<script languaje="JavaScript">

var varjs="variable en JavaScript ";

</script>';
if (! isset($_POST[variable_php]))

{

echo '<form action="'.$_SERVER[PHP_SELF].'" method=post name=pasar>

<input type=hidden name=variable_php></form>';

echo '<script languaje="JavaScript">

document.pasar.variable_php.value=varjs;

document.pasar.submit();

</script>';

}

echo "Valor de la variable en PHP: $_POST[variable_php] <br>";

echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";

echo '</body>

</html>';
?>

LEONADRO123

23/8/2013
Como puedo agregar una actividad
Como puedo agregar una actividad a cierta fecha, ?

Juan Carlos

04/5/2017
Como enviar al calendario la fecha que tengo en la base de datos
Tengo el calendario para seleccionar la fecha, y me va bien, pero como puede mostrar la fecha que tengo en el registro previa a la modificación.