
Este proyecto contiene un reloj analógico desarrollado con el elemento canvas y un reloj digital que te indicará el día, mes, año, la hora, los minutos y los segundos, configurado de acuerdo a la fecha y tiempo actual del sistema.

Los dos proyectos están en una hoja HTML.
Reloj analógico y digital




index.html
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="estilo.css">
<title>Reloj VaidrollTeam</title>
</head>
<body>
<div align="center">
<canvas id="canvas_reloj" width="600" height="600"></canvas>
<div class="caja">
<div class="caja2">
<div class="fecha">
<p id="dia_semana" class="dia_semana"></p>
<p>, </p>
<p id="dia" class="dia"></p>
<p>de</p>
<p id="mes" class="mes"></p>
<p>de</p>
<p id="anio" class="anio"></p>
</div>
<div class="reloj2">
<p id="horas" class="horas"></p>
<p>:</p>
<p id="minutos" class="minutos"></p>
<p>:</p>
<p id="segundos" class="segundos"></p>
<p id="ampm" class="ampm"></p>
</div>
</div>
</div>
</div>
<script src="reloj.js"></script>
<script src="reloj2.js"></script>
</body>
</html>
reloj.js (Reloj analógico)
var canvas = document.getElementById("canvas_reloj"); var objdibujo = canvas.getContext("2d"); var radio = (canvas.height / 2); objdibujo.translate(radio, radio); radio = radio * 0.8; setInterval(reloj_run, 1000); function reloj_run() { frente_reloj (objdibujo, radio); numeros_reloj (objdibujo, radio); tiempo_reloj (objdibujo, radio); } function frente_reloj(objdibujo, radio) { var editarcolor; objdibujo.beginPath(); objdibujo.arc(0,0,radio,0,2*Math.PI); objdibujo.fillStyle = "white"; objdibujo.fill(); editarcolor = objdibujo.createRadialGradient(0,0,radio*0.95, 0,0,radio*1.05); editarcolor.addColorStop(0.01, 'black'); editarcolor.addColorStop(0.1, 'white'); editarcolor.addColorStop(0.9, 'grey'); editarcolor.addColorStop(0.3, 'black'); objdibujo.strokeStyle = editarcolor; // objdibujo.lineWidth = radio*0.01; objdibujo.lineWidth = radio*0.1 objdibujo.stroke(); objdibujo.beginPath(); objdibujo.arc(0,0, radio*0.1,0,2*Math.PI); objdibujo.fillStyle = 'black'; objdibujo.fill(); } function numeros_reloj(objdibujo, radio) { var angulox; var numerox; objdibujo.font = radio + "% arial"; objdibujo.textBaseline = "middle"; objdibujo.textAlign = "center"; for(numerox=1; numerox < 13; numerox++) { angulox = numerox * Math.PI /6; objdibujo.rotate (angulox); objdibujo.translate (0, -radio*0.85); objdibujo.rotate (-angulox); objdibujo.fillText (numerox.toString(), 0, 0); objdibujo.rotate(angulox); objdibujo.translate(0, radio*0.85); objdibujo.rotate(-angulox); } } function tiempo_reloj(objdibujo, radio){ var tiempo_actual = new Date(); var hora = tiempo_actual.getHours(); var minutos = tiempo_actual.getMinutes(); var segundos = tiempo_actual.getSeconds(); hora = hora%12; hora = (hora*Math.PI/6)+(minutos*Math.PI/(6*60))+(segundos*Math.PI/(360*60)); manecillas_reloj(objdibujo, hora, radio*0.5, radio*0.05); minutos=(minutos*Math.PI/30)+(segundos*Math.PI/(30*60)); manecillas_reloj(objdibujo, minutos, radio*0.7, radio*0.05); segundos=(segundos*Math.PI/30); manecillas_reloj(objdibujo, segundos, radio*0.9, radio*0.02); } function manecillas_reloj(objdibujo, a, b, ancho){ objdibujo.beginPath(); objdibujo.lineWidth = ancho; objdibujo.lineCap = "round"; objdibujo.moveTo(0,0); objdibujo.rotate(a); objdibujo.lineTo(0, -b); objdibujo.stroke(); objdibujo.rotate(-a); }
Puedes modificar esta parte del código para darle otro color al reloj.
objdibujo.fillStyle = "white"; objdibujo.fill(); editarcolor = objdibujo.createRadialGradient(0,0,radio*0.95, 0,0,radio*1.05); editarcolor.addColorStop(0.01, 'black'); editarcolor.addColorStop(0.1, 'white'); editarcolor.addColorStop(0.9, 'grey'); editarcolor.addColorStop(0.3, 'black'); objdibujo.strokeStyle = editarcolor; // objdibujo.lineWidth = radio*0.01; objdibujo.lineWidth = radio*0.1
Por ejemplo.
objdibujo.fillStyle = "#1FADCF"; objdibujo.fill(); editarcolor = objdibujo.createRadialGradient(0,0,radio*0.95, 0,0,radio*1.05); editarcolor.addColorStop(0.01, 'blue'); editarcolor.addColorStop(0.1, 'green'); editarcolor.addColorStop(0.9, 'grey'); editarcolor.addColorStop(0.1, 'black'); objdibujo.strokeStyle = editarcolor; // objdibujo.lineWidth = radio*0.01; objdibujo.lineWidth = radio*0.1
O también.
objdibujo.fillStyle = "#D77C63"; objdibujo.fill(); editarcolor = objdibujo.createRadialGradient(0,0,radio*0.95, 0,0,radio*1.05); editarcolor.addColorStop(0.01, '#932795'); editarcolor.addColorStop(0.1, 'black'); editarcolor.addColorStop(0.9, 'black'); editarcolor.addColorStop(0.1, 'black'); objdibujo.strokeStyle = editarcolor; // objdibujo.lineWidth = radio*0.01; objdibujo.lineWidth = radio*0.02
reloj2.js (Reloj digital)
Puedes modificar los colores de este reloj en la hoja de estilo.
(function() { var actualizar_hora = function() { var fecha = new Date(), horas = fecha.getHours(), ampm, vaiminutos = fecha.getMinutes(), vaisegundos = fecha.getSeconds(), vaidiasemana = fecha.getDay(), vaidia = fecha.getDate(), vaimes = fecha.getMonth(), vaianio = fecha.getFullYear(); var xHoras = document.getElementById('horas'), pAMPM = document.getElementById('ampm'), xMinutos = document.getElementById('minutos'), xSegundos = document.getElementById('segundos'), xDiaSemana = document.getElementById('dia_semana'), xDia = document.getElementById('dia'), xMes = document.getElementById('mes'), xAnio = document.getElementById('anio'); var listasemana = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']; xDiaSemana.textContent = listasemana[vaidiasemana]; xDia.textContent = vaidia; var listames = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']; xMes.textContent = listames[vaimes]; xAnio.textContent = vaianio; if (horas >= 12) { horas = horas - 12; ampm = "PM"; } else { ampm = "AM"; } if (horas == 0) { horas = 12; }; xHoras.textContent = horas; pAMPM.textContent = ampm; if (vaiminutos < 10){ vaiminutos = "0" + vaiminutos }; if (vaisegundos < 10) { vaisegundos = "0" + vaisegundos }; xMinutos.textContent = vaiminutos; xSegundos.textContent = vaisegundos; }; actualizar_hora(); var intervalo = setInterval(actualizar_hora, 1000); }())
estilo.css
*
{
margin: 0;
padding: 0;
}
body
{
background: orange;
}
.caja
{
width: 80%;
}
.caja2
{
width: 30%;
}
.caja2 p
{
display: inline-block;
}
.fecha
{
font-family: Arial;
text-align: center;
font-size: 1em;
margin-bottom: 1em;
background: white;
border:2px solid black;
padding: 20px;
width: 100%;
font-weight: bold;
border-radius:5px;
}
.reloj2
{
font-weight: bold;
font-family: Arial;
width: 100%;
padding: 20px;
font-size: 2em;
text-align: center;
background: white;
border:2px solid black;
border-radius:5px;
}
Listo.
