Este script sirve para mostrar la fecha y la hora en nuestro proyecto web. He de decir que es una adaptación o modificación de uno que encontré no recuerdo dónde, por lo que no puedo citar la fuente.
En la versión original, la fecha y la hora se mostraban en campos "input" de dos formularios, uno para la fecha y otro para la hora. Pero por más que me partí el coco con el CSS del proyecto, no sonseguía ajustar automáticamente el ancho de los inputs a su contenido y los datos quedaban o muy juntos o muy separados, en función de largo de su contenido (no es lo mismo mostrar "lunes" que "Miércoles" o "Enero" que "Septiembre")... supongo que por novato que soy.
El caso es que modifiqué el script y sustituí los inputs por simples divs, en los que se muestran los datos gracias a la función "innerHTML" y los cuales puedo modificar mediante CSS con bastante facilidad.
Una vez copiado el script en nuestro documento js.js (suponiendo que lo llaméis así, claro), sólo queda llamar a la función desde el body para utilizarla y crear los divs en los cuales se mostrarán los datos. El html podría ser así;
<div class="divreloj">
<div id="fecha" class="fecha">
<div id="dia"></div>
<div id="numdia"></div>
<div id="mes"></div>
<div id="anno"></div>
</div>
<div id="reloj" class="reloj">
<div id="horas"></div>
<div id="minutos"></div>
</div>
</div>
Os dejo el CSS de mi proyecto, pero esto lo tenéis que ajustar a vuestras necesidades;
.divreloj {
position: absolute;
top: 10px;
left: 645px;
width: 300px;
height: 80px;
font-weight: 100;
text-align: right;
}
#fecha {
position: absolute;
width: auto;
right: 0;
}
#reloj {
position: absolute;
top: 20px;
width: auto;
right: 0;
}
#dia, #mes, #anno, #numdia, #horas, #minutos {
float: left;
}
El script está comentado, así que no voy a añadir nada más.
function mostrarfecha(){
//obtenemos la fecha actual
var ahora = new Date();
//obtenemos la hora actual
var hrs = ahora.getHours();
//obtenemos los minutos actuales
//nótese lo siguiente; evalúo una condición previa para añadir un "0" delante del minuto si este es menor que "9".
//El caso es que los minutos son mostrados por defecto sin cero delante y encontrarnos con "21:3" de la noche... no mola
var mnts = (ahora.getMinutes()<9) ? '0'+ahora.getMinutes() : ahora.getMinutes();
//Creamos el contenido HTML de los divs "horas" y "minutos"
//Primero selecciono los divs
var horas = document.getElementById('horas');
var minutos = document.getElementById('minutos');
//y después modifico su contenido
//nótese que aquí añado los espacios y/o separadores correspondientes para que visualmente se muestre la información correctamente
horas.innerHTML = hrs+':';
minutos.innerHTML = mnts;
//ahora vamos con las fechas
//recuperamos el día de la semana en que estamos
var diasemana = ahora.getDay();
//recuperamos el mes del año en el que estamos
var mesanno = ahora.getMonth();
//recuperamos el número, dentro del mes, del día en el que estamos
var numerodia = ahora.getDate();
//recuoeramos el año en el que estamos
//al año que nos devuelve la función "getYear" hay que sumar 1900 años más... ahora no recuerdo porqué (investiga leñe!)
var year = ahora.getYear()+1900;
//ahora seleccionamos los divs a modificar
var dia = document.getElementById('dia');
var mes = document.getElementById('mes');
var numdia = document.getElementById('numdia');
var anno = document.getElementById('anno');
//y los modificamos
//nótese que aquí añado los espacios y/o separadores correspondientes para que visualmente se muestre la información correctamente
numdia.innerHTML = numerodia+' de ';
anno.innerHTML = year;
//traducimos los "numeros" devueltos por las funciones a los nombres de días o meses correspondientes
//nótese que aquí añado los espacios y/o separadores correspondientes para que visualmente se muestre la información correctamente
switch(diasemana){
case 1:
dia.innerHTML = 'Lunes, ';
break;
case 2:
dia.innerHTML = 'Martes, ';
break;
case 3:
dia.innerHTML = 'Miércoles, ';
break;
case 4:
dia.innerHTML = 'Jueves, ';
break;
case 5:
dia.innerHTML = 'Viernes, ';
break;
case 6:
dia.innerHTML = 'Sábado, ';
break;
case 7:
dia.innerHTML = 'Domingo, ';
break;
}
switch(mesanno){
case 0:
mes.innerHTML = 'Enero de '
break;
case 1:
mes.innerHTML = 'Febrero de '
break;
case 2:
mes.innerHTML = 'Marzo de '
break;
case 3:
mes.innerHTML = 'Abril de '
break;
case 4:
mes.innerHTML = 'Mayo de '
break;
case 5:
mes.innerHTML = 'Junio de '
break;
case 6:
mes.innerHTML = 'Julio de '
break;
case 7:
mes.innerHTML = 'Agosto de '
break;
case 8:
mes.innerHTML = 'Septiembre de '
break;
case 9:
mes.innerHTML = 'Octubre de '
break;
case 10:
mes.innerHTML = 'Noviembre de '
break;
case 11:
mes.innerHTML = 'Diciembre de '
break;
}
}
No hay comentarios:
Publicar un comentario