
С ошибкой только 1 второе место в 100 миллионы лет, a атомные часы Это один из приборов измерения времени точнее в истории человечества.
Атомные часы предназначены для измерения Точная длина второй, База группы современные часы. В Международная система единиц (ЕСЛИ) Определяет второй как время, которое занимает атома цезия 133, В состоянии покоя и при температуре 0 градусов по Кельвину, в разгаре точно 9.192.631.700 раз.
В точность атомные часы является переменной и в постоянное улучшение. С Ошибка Предполагается, что только 1 в секунду 100 миллионы лет, в NIST-F1 в Боулдер, Колорадо, является одним из этих часов точнее мира.
Есть некоторые 400 атомные часы во всем мире, которые способствуют к расчету Международное атомное время (ТАЙ), один из стандартов времени, используемых для определения Всеобщее скоординированное время (UTC) и Местное время По всему миру.
Навигационные системы Спутниковое как GPS, ГЛОНАСС и Галилеянин Они также основаны на точных измерений времени, чтобы точно рассчитать положение.
Хотя, действительно, Мы не можем прямое подключение к атомным часам, Да Мы можем это сделать любой из Серверов NTP (Сетевой протокол времени), которые связаны с ними косвенно. И для этого, Мы собираемся показать вам Функция Это сделает его время запроса на сервере NTP с именем Time.NIST.gov.
Вот код для этого:
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; } |
С помощью этой функции getAtomicTimestamp, Открыть подключение к серверу, указанному в Порт 37, и просто отправить возвращение. С этим, сервер, мы вернемся время в двоичном файле, который будет иметь, Впоследствии, конвертировать значение Временная метка действительный, как вы можете видеть в строке 8, возвращение, И наконец, значение требуется отметка времени.
Если, Теперь, хотите использовать Это значение, возвращаемое штамп времени, просто сделайте это, как и любое другое значение отметки времени. Если, Например, как и для просмотра Текущая дата и время, Вы можете сделать это:
1 | echo date( 'Y-m-d H:i:s', getAtomicTimeStamp() ); |
Что вы отображается на экране в Дата и время полученные с помощью запрос к серверу NTP упоминалось ранее.
Таким образом вы можете сделать запрос к одному из многочисленных Серверов NTP косвенно подключен к атомные часы Всемирный, через Интернет, по применение в PHP.
