EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
PF Preguntas - Foro

Qué es un reloj atómico y cómo hacerle una petición de tiempo en PHP

Programación PHP  
 
Qué es un reloj atómico y cómo hacerle una petición de tiempo en PHP

Con un error de sólo 1 segundo en 100 millones de años, un reloj atómico es uno de los dispositivos de medición de tiempo más precisos en la historia de la humanidad.

Los relojes atómicos están diseñados para medir la longitud exacta de un segundo, la unidad base de la relojería moderna. El Sistema Internacional de Unidades (SI) define el segundo como el tiempo que tarda un átomo de Cesio-133, en estado de reposo y a una temperatura de 0º Kelvin, en oscilar exactamente 9.192.631.700 veces.

La precisión de los relojes atómicos es variable y está en constante mejoría. Con un error esperado de tan solo 1 segundo en unos 100 millones de años, el NIST-F1 en Boulder, Colorado, es uno de los relojes más precisos del mundo.

Existen unos 400 relojes atómicos en todo el mundo que contribuyen al cálculo del Tiempo Atómico Internacional (TAI), uno de los estándares de tiempo utilizados para determinar el Tiempo Universal Coordinado (UTC) y la hora local de todo el mundo.

Sistemas de navegación por satélite como GPS, GLONASS y Galileo también se basan en mediciones precisas de tiempo para calcular la posición con precisión.

Aunque, realmente, no podemos conectar directamente a un reloj atómico, sí que podemos hacerlo a alguno de los servidores de NTP (Network Time Protocol), que están conectados a ellos indirectamente. Y para ello, vamos a mostrarte una función que realizará la petición de tiempo al servidor de NTP con nombre time.nist.gov.

Aquí tienes el código para ello:

Con esta función getAtomicTimestamp, abrimos una conexión al servidor indicado por el puerto 37, y simplemente enviamos un retorno. Con esto, el servidor nos devolverá el tiempo en binario, el cual tendremos que, posteriormente, convertir a un valor timestamp válido, tal como puedes ver en la línea 8, devolviendo, por último, el valor timestamp requerido.

Si, ahora, quieres usar este valor timestamp devuelto, simplemente hazlo como cualquier otro valor timestamp. Si, por ejemplo, quieres visualizar la fecha y hora actuales, puedes hacerlo así:

Lo que te mostrará por pantalla la fecha y hora obtenidas mediante la solicitud al servidor NTP anteriormente mencionado.

 

De esta forma puedes realizar la petición a uno de los numerosos servidores NTP conectados de forma indirecta a relojes atómicos a lo ancho de todo el mundo, a través de Internet, mediante una solicitud en PHP.

 

Déjanos un comentario o entra al  Foro
Share on Facebook Tweet about this on Twitter Share on Google+ Pin on Pinterest Share on Reddit Share on VK Share on StumbleUpon Share on Tumblr Share on LinkedIn Email this to someone Print this page