
唯一のエラーで 1 2 番目 100 何百万の年, 、 原子時計 時間測定装置の一つです。 正確です 人類の歴史の中で.
原子時計は、測定するように設計、 正確な長さ 2 番目の, モダンな時計の基本単位. 、 単位の国際的なシステム (場合) 定義します、 2 番目 として、 セシウム 133 原子がかかる時間, 休眠状態にある、0 ケルビンの温度で, 正確に振動する 9.192.631.700 回.
、 精度 原子時計は変数では 継続的改善. と、 エラー だけと予想 1 2 番目の 100 何百万の年, 、 NIST F1 ボルダー, コロラド州, 時計の一つです。 正確です 世界の.
いくつかあります。 400 計算に貢献する世界中の原子時計、 国際原子時 (タイ), 時間を決定するための基準の 1 つ、 協定世界時 (UTC) と、 現地時間 すべての世界の.
ナビゲーション システム 衛星として GPS, GLONASS と ガリレオ 彼らはまた、正確に位置を計算する時間の正確な測定に基づいています.
ただし、, 本当に, 我々 がすることはできません。 原子時計に直接接続します。, [はい] 我々 はそれを行うことができます。 いずれか、 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 でのアプリケーション.
