¿Qué hora es? Cómo muestran, calculan, formatean y sincronizan fechas y horas nuestros sistemas

Parece una pregunta sencilla, pero le sorprendería lo compleja que es la infraestructura que le proporciona una hora exacta. Cuando sus usuarios existen en diferentes zonas horarias o incluso viajan a través de zonas horarias mientras usan sus sistemas, existe la expectativa de que todo funcione a la perfección.
Pero no es sencillo.
Ejemplo: tiene un empleado en Phoenix que necesita programar un correo electrónico para las 8:00 a. m. del lunes para su empresa en Los Ángeles. Phoenix no se ajusta al horario de verano; Los Ángeles lo hace. ¿Y qué pasa con los destinatarios? ¿Deberían recibir el correo electrónico a las 8:00 a. m. del lunes en su zona horaria respectiva? ¿O los suscriptores de Nueva York recibirán su correo electrónico a las 11:00 a. m. EST del lunes?
Cómo se muestra la hora en su computadora
- Sistema operativo (OS) – Su sistema operativo busca la hora en su reloj de tiempo real (RTC). Ajusta el formato de la fecha para su localidad y la hora para su zona horaria apropiada, generalmente determinada por la ubicación de su dispositivo.
- Formatos de fecha – Hay varios formatos de fecha comunes, que incluyen:
- La fecha del calendario gregoriano (AAAA-MM-DD), por ejemplo, 2022-02-08
- La fecha de estilo de Estados Unidos (MM/DD/AAAA), por ejemplo, 02/08/2022
- La fecha de estilo europeo (DD/MM/AAAA), por ejemplo, 08/02/2022
- Zonas de horario – Hay 24 zonas horarias en el mundo, cada una de ellas separada aproximadamente por 15 grados de longitud entre sí. Las zonas horarias dividen el mundo en regiones con la misma hora estándar para que las personas en cada zona horaria puedan tener una hora común para sus actividades diarias.
- Horario de verano – En las regiones que observan el horario de verano, los relojes se adelantan una hora en primavera y se atrasan una hora en otoño. Esto da como resultado una hora extra de luz del día por las tardes durante los meses de verano, pero también significa que el sol sale y se pone una hora más temprano por la mañana y por la noche, respectivamente, durante los meses de invierno.
- Formatos de fecha – Hay varios formatos de fecha comunes, que incluyen:
- Reloj en tiempo real (RTC) – su computadora mantiene la hora, incluso cuando está apagada, usando un chip conocido como RTC. Cuando no está encendido, una pequeña batería de litio mantiene el chip funcionando (juego de palabras) y puede alimentarlo durante hasta una década sin carga.
- Network Time Protocol (NTP): cuando los sistemas operativos tienen una conexión establecida a Internet, utilizan NTP para sincronizar sus relojes con un conjunto de servidores de tiempo, incluidos los proporcionados por Network Time Protocol. De forma predeterminada, Windows se sincroniza con los servidores NTP una vez cada 7 días, mientras que macOS se sincroniza una vez cada hora. Los NTP mantienen su tiempo usando el tiempo universal coordinado (UTC). Cuando un cliente solicita la hora actual a un servidor NTP, el servidor responde con un valor de 64 bits que representa el número de segundos desde el 1 de enero de 1900, a las 00:00:00 UTC.
- Tiempo Universal Coordinado (UTC) – un tiempo estandarizado utilizado como base para todo el cronometraje del mundo. Se basa en el Tiempo Atómico Internacional (TAI), que mide el tiempo medio transcurrido entre dos puntos específicos de las órbitas de la luna de la Tierra. UTC se implementó por primera vez en 1972 como sucesor de TAI y la hora media de Greenwich (GMT). UTC se mantiene dentro de los 0.9 segundos de la escala de tiempo TAI, y su precisión se mantiene mediante el uso de relojes atómicos y otras tecnologías de cronometraje.
- Las 24 zonas horarias UTC se dividen en el desplazamiento categorías donde cada compensación es el ajuste por el tiempo apropiado en horas: UTC-12, UTC-11, UTC-10, UTC-9, UTC-8, UTC-7, UTC-6, UTC-5, UTC-4, UTC-3, UTC-2, UTC-1, UTC, UTC+1, UTC+2, UTC+3, UTC+4, UTC+5, UTC+6, UTC+7, UTC+8, UTC+9, UTC+10 y UTC+11.

- Hora atómica internacional (TAI) – un estándar de tiempo que se basa en el tiempo promedio transcurrido entre dos puntos específicos en las órbitas de la luna de la Tierra. TAI es una de las escalas de tiempo más precisas y estables disponibles, y es mantenida por el Oficina Internacional de Pesos y Medidas.
- Relojes atómicos – son cronometradores de alta precisión que utilizan las vibraciones naturales de los átomos para medir el tiempo. El tipo más común de reloj atómico es el reloj atómico de cesio, que utiliza las vibraciones de los átomos de cesio para mantener el tiempo. La precisión de un reloj atómico se mantiene gracias a la estabilidad de la frecuencia de la radiación electromagnética emitida por los átomos de cesio. Esta frecuencia es tan estable que solo cambia una fracción de segundo durante miles de años. Luego, la frecuencia de la radiación electromagnética se compara con un oscilador de cuarzo, que se usa para controlar un contador. El contador cuenta el número de ciclos de radiación electromagnética, y esta cuenta se utiliza para calcular el tiempo. El contador se corrige constantemente para garantizar que permanezca sincronizado con las vibraciones de los átomos de cesio.
Los sistemas modernos a menudo registran tiempos como marcas de tiempo de Unix. Una marca de tiempo de Unix es una representación numérica de un punto específico en el tiempo, medida como la cantidad de segundos que han transcurrido desde el 1 de enero de 1970 a las 00:00:00 UTC. Las marcas de tiempo de Unix se utilizan ampliamente en los sistemas informáticos porque es fácil trabajar con ellas y se pueden comparar, clasificar y manipular fácilmente. También son independientes de las zonas horarias, lo que significa que proporcionan una representación estandarizada del tiempo que se puede usar en diferentes regiones geográficas.
Entonces... cuando miras la hora, estás mostrando
Trabajar con fechas en PHP
He escrito antes sobre cómo mostrar programáticamente el año para su declaración de derechos de autor para que no tengas que seguir actualizándolo cada año. Sin embargo, hay mucho más que puedes hacer con las fechas. Aquí hay unos ejemplos:
Mostrar la fecha como 2023-02-08:
$current_date = date("Y-m-d");
echo $current_date; Mostrar la fecha como una marca de tiempo 1612684800:
$timestamp = strtotime("2023-02-08");
echo $timestamp; Muestra la fecha y la hora formateadas en UTC en lugar de la zona horaria local como 2023-02-08 15:25:00:
$utc_date = gmdate("Y-m-d H:i:s");
echo $utc_date; Mostrar la marca de tiempo actual de Unix como 1612742153:
$current_timestamp = time();
echo $current_timestamp; La zona horaria predeterminada es Los Ángeles y luego muestra la fecha y la hora como 2023-02-08 07:25:00:
date_default_timezone_set("America/Los_Angeles");
$date = date("Y-m-d H:i:s");
echo $date; Organizar los caracteres del formato de fecha PHP en grupos lógicos, con cada grupo en orden alfabético y los caracteres del formato como subviñetas:
- Día
d– Día del mes, 2 dígitos con ceros a la izquierda (01 a 31). Ejemplo:15D– Una representación textual de un día, tres letras (de lunes a domingo). Ejemplo:Thuj– Día del mes sin ceros a la izquierda (1 a 31). Ejemplo:15l('L' minúscula): una representación textual completa del día de la semana (de domingo a sábado). Ejemplo:ThursdayS– Sufijo ordinal en inglés para el día del mes, 2 caracteres (st, nd, rd o th). Ejemplo:thw– Representación numérica del día de la semana (0 (para domingo) a 6 (para sábado)). Ejemplo:4z– El día del año (a partir de 0). Es posible que el ejemplo de la fecha actual no sea exacto sin cálculos exactos.
- Mes
F– Una representación textual completa de un mes (de enero a diciembre). Ejemplo:Februarym– Representación numérica de un mes, con ceros a la izquierda (01 a 12). Ejemplo:02M– Una breve representación textual de un mes, tres letras (de enero a diciembre). Ejemplo:Febn– Representación numérica de un mes, sin ceros a la izquierda (1 a 12). Ejemplo:2t– Número de días del mes determinado (28 a 31). Ejemplo:28
- Semana
W– Número de semana del año ISO-8601, semanas que comienzan en lunes (Ejemplo: 42, la semana 42 del año). Es posible que el ejemplo de la fecha actual no sea exacto sin cálculos exactos.
- Año
o– Año de numeración de semanas ISO-8601. Tiene el mismo valor que Y, excepto que si el número de semana ISO (W) pertenece al año anterior o siguiente, se utiliza ese año. Ejemplo:2024Y– Una representación numérica completa de un año, 4 dígitos. Ejemplo:2024y– Una representación de dos dígitos de un año. Ejemplo:24
- Zona horaria
T– Abreviatura de zona horaria. Ejemplo:ESTe– Identificador de zona horaria. Ejemplo:America/New_YorkP– Diferencia con la hora de Greenwich (GMT) con dos puntos entre horas y minutos. Ejemplo:-04:00O– Diferencia con la hora de Greenwich (GMT) sin dos puntos entre horas y minutos. Ejemplo:-0400Z– Desplazamiento de zona horaria en segundos. El desplazamiento para las zonas horarias al oeste de UTC es siempre negativo, y para aquellos al este de UTC siempre es positivo. Ejemplo:-14400 (for EST)
Cada idioma tiene sus funciones para trabajar con UTC, marcas de tiempo, formatos de visualización, zonas horarias y horario de verano. Si está desarrollando una plataforma, querrá prestar mucha atención a cómo almacena los datos basados en el tiempo, así como a cómo los formatea y muestra. Si es una empresa, querrá asegurarse de que sus plataformas puedan administrar el trabajo en zonas horarias, mostrar los formatos apropiados para sus usuarios y administrar los ajustes del horario de verano.
¿Entonces, Qué hora es?
Mi sistema operativo está formateando la fecha y la hora como 17 de enero de 2026, 6:18. La hora se ha ajustado desde una marca de tiempo Unix a mi zona horaria, ajustada al horario de verano. Esta hora se ha sincronizado en la última hora desde macOS con un servidor NTP en UTC y se ha ajustado para mantener una diferencia de 0.9 segundos con TAI y los relojes atómicos. Todo esto, por supuesto, es una hora precisa para mi ubicación con respecto a la Tierra, la Luna y el Sol, ajustada al horario de verano.







