
केवल के एक त्रुटि के साथ 1 सेकंड में 100 वर्षों के लाखों, एक परमाणु घड़ी यह समय मापन उपकरणों में से एक है अधिक सटीक मानवता के इतिहास में.
उन्हें परमाणु घड़ियों को मापने के लिए डिज़ाइन कर रहे हैं सटीक लंबाई एक दूसरे का, आधुनिक watchmaking की आधार इकाई. को अन्तर्राष्ट्रीय इकाई प्रणाली (अगर) निर्धारित करता है दूसरा रूप में समय है कि यह एक सीज़ियम-133 परमाणु लेता है, आराम की स्थिति में और तापमान 0 डिग्री केल्विन, झूले में बिल्कुल 9.192.631.700 बार.
को परिशुद्धता परमाणु घड़ियों चर है और में है निरंतर सुधार. के साथ एक त्रुटि ही अपेक्षा 1 एक सेकंड में 100 वर्षों के लाखों, को NIST-F1 Boulder में, कोलोराडो, घड़ियों में से एक है अधिक सटीक की दुनिया.
वहाँ कुछ कर रहे हैं 400 परमाणु घड़ियों दुनिया भर की गणना करने के लिए योगदान अंतर्राष्ट्रीय परमाणु समय (ताई), निर्धारित करने के लिए इस्तेमाल किया समय के मानकों में से एक समन्वित यूनिवर्सल समय (UTC) और स्थानीय समय दुनिया भर में.
नेविगेशन सिस्टम उपग्रह के रूप में जीपीएस, 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 में अनुप्रयोग.
