-
Notifications
You must be signed in to change notification settings - Fork 0
/
Reloj.jsx
93 lines (85 loc) · 2.44 KB
/
Reloj.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { Icon } from "@iconify/react";
import { useEffect, useState } from "react";
import styled from "styled-components";
export function Reloj() {
const [hora, setHora] = useState("");
const [fecha, setFecha] = useState("");
useEffect(() => {
const mostrarReloj = () => {
const fechaActual = new Date();
const horaActual = fechaActual.getHours();
const minutosActual = fechaActual.getMinutes();
const segundosActual = fechaActual.getSeconds();
const mesActual = fechaActual.getMonth();
const diaActual = fechaActual.getDate();
const añoActual = fechaActual.getFullYear();
const dias = [
"domingo",
"lunes",
"martes",
"miércoles",
"jueves",
"viernes",
"sábado",
];
const meses = [
"enero",
"febrero",
"marzo",
"abril",
"mayo",
"junio",
"julio",
"agosto",
"septiembre",
"noviembre",
"diciembre",
];
const mes = meses[mesActual];
const hr = horaActual > 12 ? horaActual - 12 : horaActual;
const am = horaActual < 12 ? "AM" : "PM";
const formattedHora = horaActual < 10 ? "0" + horaActual : horaActual;
const formattedMinutos =
minutosActual < 10 ? "0" + minutosActual : minutosActual;
const formattedSegundos =
segundosActual < 10 ? "0" + segundosActual : segundosActual;
setHora(`${hr}:${formattedMinutos}:${formattedSegundos}:${am}`);
setFecha(
`${dias[fechaActual.getDay()]} ${diaActual} ${mes} del ${añoActual}`
);
};
const intervalId = setInterval(mostrarReloj, 1000);
// Limpieza del intervalo cuando el componente se desmonta
return () => clearInterval(intervalId);
}, []); // El segundo argumento [] indica que este efecto se ejecuta solo al montar el componente
return (
<Container>
<div class="cont-reloj">
<div class="reloj" id="reloj">
{<Icon icon="icon-park:alarm-clock" />} {hora}
</div>
<div class="datos">
<span id="fec_Datos">{fecha}</span>
</div>
</div>
</Container>
);
}
const Container = styled.div`
.cont-reloj {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
font-weight: bold;
}
.reloj {
font-size: 1em;
align-items:center;
display:flex;
gap:5px;
}
.datos {
font-size: 1em;
}
`;