
Com um erro de apenas 1 segundo em 100 milhões de anos, um relógio atômico É um dos dispositivos de medição de tempo mais preciso na história da humanidade.
Relógios atômicos são projetados para medir o comprimento exato de um segundo, a unidade base da relojoaria moderna. O Sistema internacional de unidades (SE) define o segundo como o tempo que leva um átomo de césio-133, Em estado de repouso e à temperatura de 0 graus Kelvin, no balanço exatamente 9.192.631.700 vezes.
O precisão relógio atômico é variável e é em melhoria constante. Com um erro Espera-se apenas 1 em um segundo 100 milhões de anos, o NIST-F1 em Boulder, Colorado, é um dos relógios mais preciso do mundo.
Há alguns 400 relógios atômicos ao redor do mundo que contribuem para o cálculo da Tempo atômico internacional (TAI), um dos padrões de tempo usado para determinar o Tempo Universal Coordenado (UTC) e o Hora local Em todo o mundo.
Sistemas de navegação por satélite como GPS, GLONASS e Galileu Eles também são baseados em medições precisas de tempo para calcular precisamente a posição.
Embora, realmente, Não pode se conectar diretamente a um relógio atômico, Sim Podemos fazê-lo qualquer um do Servidores NTP (Network Time Protocol), Eles estão indiretamente ligados a eles. E, por isso, Nós vamos te mostrar uma função Isso irá torná-lo hora da solicitação para o servidor do NTP com nome time.NIST.gov.
Aqui é o código para fazer isso:
1 2 3 4 5 6 7 8 9 10 11 | function getAtomicTimestamp ( ) { $sck = fsockopen( "time.nist.gov", 37 ); if ( $sck ) { fputs( $sck, "\n" ); $tiempo = fread( $sck, 49 ); fclose( $sck ); } $tiempoAtomico = (abs(hexdec('7fffffff') - hexdec(bin2hex($tiempo)) - hexdec('7fffffff')) - 2208988800); return $tiempoAtomico; } |
Com esta função getAtomicTimestamp, Abrir uma conexão para o servidor especificado pelo Porto 37, e basta enviar um retornar. Com isto, o servidor que retornaremos o tempo em binário, que terá que, posteriormente, converter para um valor Timestamp válido, como você pode ver na linha de 8, retornando, Finalmente, o valor timestamp necessária.
Se, Agora, deseja usar Este valor retornado timestamp, Fá-lo como qualquer outro valor de timestamp. Se, por exemplo, gosta de ver o hora e data atual, Você pode fazer isso:
1 | echo date( 'Y-m-d H:i:s', getAtomicTimeStamp() ); |
O que você exibido na tela o data e hora obtidos através da solicitação de para o servidor NTP mencionado anteriormente.
Desta forma você pode fazer a solicitação para um das numerosas Servidores NTP ligado indiretamente ao relógios atômicos o world-wide, através Internet, por meio de um aplicativo em PHP.
