Fechas

Este calendario puede usarse para insertar fechas en los formularios simplemente seleccionando desde sus propios controles el mes y el año, y pinchando el día deseado.

Prueba seleccionar día, mes y año... En esta misma página se indica cómo cambiar el comportamiento del script.

Resultado:

Características

El fichero: calendario.js es donde se encuentra el script del calendario; solo requiere como parámetros el mes y año que se quiera mostrar, junto con el identificador (tercero de los parámetros) y la el nombre de la función que gestionará la fecha seleccionada, en este caso se trata de la función seleccionaFecha(dd, mm, aa) que recibe los valores día, mes y año en ese órden.

En esta página se ha redefinido con el código siguiente:

function seleccionaFecha(dd, mm, aa)	{
	var fecha = new Date();
	fecha.setDate(dd);
	fecha.setMonth(mm - 1);
	fecha.setFullYear(aa);
	var Semana = ["Dominago","Lunes","Martes","Miércoles","Jueves","Viernes","Sabado"];
	var mes = ",enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre".split(",");
	cadena = Semana[fecha.getDay()] + " " + dd + " de " + mes[mm] + " de " + aa;
	document.forms.salida.comentario.value = cadena;
}

En el código se puede apreciar la creación de un nuevo objeto "Date" partiendo de la fecha obtenida anteriormente, tan solo para obtener el día de la semana.

El identificador nos servirá también para darle al calendario el aspecto que más nos guste. Puede verse la hoja de estilos de este calendario en esta dirección: calendario.css.

Tan solo debe enlazar con el script, crear los estilos y por último ponr el código que crea el calendario:

<script type="text/javascript" >
<!--
_hoy = new Date();
document.writeln(calendar(_hoy.getMonth(), _hoy.getFullYear(), "calendario1", "seleccionaFecha"));
//-->
</script>

Calendario en pop-up

Hay Páginas que abren una ventana emergente para seleccionar una fecha... es algo tan sencillo como poner el script del calendario en una página nueva con el calendario en él y que la función asociada devuelva la fecha seleccionada al sitio deseado.

Vamos a crear un formulario donde se quiera incrustar 2 fechas distintas en sendos campos (entrada y salida)...

<form name="ej" action="" method="get" >
<fieldset style="text-align: center">
<fieldset style="width: 45%; float: left"><legend>entrada</legend>
<input type="text" name="entrada" >
<button type="button" onclick="window.open('popup.html?destino=ej.entrada', '_blank', 'width=264,height=167')">
rellenar fecha1
</button>
</fieldset>
<fieldset ><legend>fecha 2</legend>
<input type="text" name="salida" >
<button type="button" onclick="window.open('popup.html?destino=ej.salida', '_blank', 'width=264,height=167')">
rellenar fecha2
</button>
</fieldset>
</fieldset>
</form>
ejemplo
entrada
salida

A partir de este formulario bastaría con definir 2 nuevas funciones en el popup para que funcione el calendario a la perfección: una de ellas leería los parámetros de entrada (también puede hacerse con otros lenguajes como asp, php... pero en javascript es tan sencillo como poner estas líneas en una sección script de la página:

var campoDestino;
var formDestino;
function leerDestino()	{
	url = location.search.substr(1).split("=");
	Destino = url[1].split(".");
	formDestino = Destino[0];
	campoDestino = Destino[1];
}
window.onload = leerDestino;

Hay distintas formas de obtener variables desde una página, así que no voy a comentar el script, y quién conozca otra forma que lo haga a su gusto... ahora tan solo voy a añadir la forma de definir la función que llenará los campos que hemos reservado para las fechas:

// "seleccionaFecha" debe ser el cuarto parámetro del calendario.
function seleccionaFecha(dd, mm, aa)	{
	if (opener)	{
		opener.document.forms[formDestino][campoDestino].value = dd + "/" + mm + "/" + aa;
		window.close();
	}
	else	alert("año: " + aa + "\nmes: " + mm + "\ndia: " + dd);
}

Versión DOM

También se puede usar un script que crea integramente el calendario de forma dinámica usando DOM (javascript). Por el momento no funciona en el explorador Internet Explorer, pero en cuanto solucione el problema, lo comunicaré.

En este caso hacen falta otros parámetros: el sitio donde se quiere crear y un valor lógico cierto/falso (true/false) indicando si se debe insertar al principio o al final del sitio especificado (su atributo id)

La forma de insertar este segundo calendario en esta página es la siguiente:

<body
onload="_ya = new Date();
 calendario(	_ya.getMonth(),
		_ya.getFullYear(),
		'calendario',
		'otrasFechas',
		false,
		'seleccionandoFecha')" >

Agradecimiento

Agradezco la ayuda que siempre me han dado desde los foros del web, y en este script un agradecimiento especial a "Cap.Buscapina" que ha participado en el siguiente mensaje: creación dinámica de formularios (explorer) .



Comentarios

Nombre: Miguel Vasquez
Procedencia: Peru
E-mail: sonic273@hotmail.com
URL: http://
comentario:

Muchas gracias brother tu ejemplo estuvo genial pero en la primera parte tiene un error en el dia 31 no escribe el bien el nombre del dia 31 sino dos dias menos creo, igual habria q revisar el codigo


Nombre: Monica
Procedencia: España
E-mail:
URL: http://softwareyrecursos.iespana.es
comentario:

¡Gracias amigo! Es lo que andaba buscando.


Nombre: Majony
Procedencia: estudiante
E-mail: juanc.romeroc@gmail.com
URL: http://
comentario:

Muy bueno y util


Nombre: Roberto
Procedencia: España
E-mail: ranguita@swamedida.com
URL: http://www.swamedida.com
comentario:

Muchas gracias por tu aporte, el calendario era justo lo que andaba buscando, pero no he conseguido que funcione correctamente ya que cuando pulso la fecha de salida se borra la de entrada y vicebersa, podrias echarme una mano?


Nombre: maria
Procedencia: Avila
E-mail: mnv_17@hotmail.com
URL: http://
comentario:

Hola,el calendario funciona a la perfección, pero tengo un problema, he puesto uno para la fecha de inicio y otro para la fecha de fin, el problema es que cuando introduzco por ejemplo la fecha inicio 1/9/2008 y fecha fin 10/9/2008 me dice que la fecha de inicio debe ser menor que la fecha fin, porque hago una comprobación de fechas pero esa comprobación de fechas está correcta, solo me da problemas cuando el dgito primero de fecha inicio solo es una cifra, espero que me puedan ayudar para ver que necesito cambiar.


Nombre: principiante
Procedencia: Santiago de Chile
E-mail: dinamo68@hotmial.com
URL: http://
comentario:

excelente, era lo que necesita y funciona muy bien Saludos y Gracias.


Nombre: quie
Procedencia: estudiante
E-mail: kerre_73173@hotmail.com
URL: http://
comentario:

YA TENGO EL CODIGO DEL CALENDARIO EN POP-UP PERO AL MOMENTO DE DAR CLICK EN LLENAR ENTRADA NO APARECE EL CALENDARIO COMO LE HAGO PARA QUE HAGA LO MISMO QUE HACE EN LA PAGINA PERO EN MI PC, PASAME EL CODIGO NO! POR FAVOR,Y NO PUEDO CON OTRO CALENDARIOS. ME GUSTARIA QUE ME DIGERAS PASO POR PASO ES QUE SOY NUEVO EN ESTO, QUE CODIGO PONER O QUE HACER , !!!!!!! POR FAVOR, URGENTE.


Nombre: Valdemar Ruben
Procedencia: Estado de Mexico
E-mail: valdemar1983@hotmail.com
URL: http://
comentario:

Hola un favor no tendran codigo para poner la fecha y la hora separados en input (cajas de texto) de un formulario de manera automatica para q al momento de dar guardar se guarde junto con la demas informacion q se tecleo lo quiero de manera automatica para ahorrar tiempo al momento de capturar. tambien el codigo de un calendario desplegable pero el formato de la fecha sea ano mes y dia si saben donde podria conseguirlo se los agradeseria mucho


Nombre: jesus ruelas vargas
Procedencia: michoacan, mexico
E-mail: guaimo86@hotmail.com
URL: http://
comentario:

YA TENGO EL CODIGO DEL CALENDARIO EN POP-UP PERO AL MOMENTO DE DAR CLICK EN LLENAR ENTRADA NO APARECE EL CALENDARIO COMO LE HAGO PARA QUE HAGA LO MISMO QUE HACE EN LA PAGINA PERO EN MI PC, PASAME EL CODIGO NO! PRO FAVOR ES QUE LE ESTOY BA5TALLANDO Y NO PUEDO CON OTRO CALENDARIOS. ME GUSTARIA QUE ME DIGERAS PASO POR PASO ES QUE SOY NUEVO EN ESTO, QUE CODIGO PONER O QUE HACER , !!!!!!! POR FAVOR, URGENTE.


Nombre: pablo
Procedencia: argentina
E-mail: pablo@vissionflash.com.ar
URL: http://
comentario:

PERFECTO! buenissimo, ahora mi pregunta es: como puedo hacer para enviar estos campos, junto a los datos de contacto por medio un enviar.php? agradecere respuesta, salu2


Nombre: phillippe
Procedencia: chile
E-mail: hatakekakashi__7@hotmail.com
URL: http://
comentario:

muy bueno el calendario justo estaba buscando uno en que me permitiera ingresar el año libremente ya que otros que he visto tienes que clickear año por año lo cual resulta un poco lento, excelente trabajo. PD: al del post anterior si es que todavia tiene problemas que me envie un mail para ayudarlo.


Nombre: regfgo
Procedencia: estudiante
E-mail: fredyrecalde@hotmail.com
URL:
comentario:

Es muy interesante ver en funcionmiento el calendario, justo lo que buscaba, mas aun tengo problemas en implementarlo en mi pagina , estoy haciendo mis pinonos en php ,y no me funciona el calendario, me podrias ayudar para saber como hacer que funsione


Colabore enviando su comentario

Nombre :
Procedencia :
E-mail :
Página web :
Código de envío

Rellene el campo adjunto con la clave de la imagen para poder enviar su comentario. codigo de envío

Edición negrita cursiva subrayado   formato   alineación izquierda alineación derecha alineación centrada alineación justificada   formato de alineación

Valid HTML 4.01 Strict ¡CSS Válido! Página del webmaster
Visitas: contador