2015-07-04 7 views
9

मैं नीचे की तरह पीएचपी कुछ में मिलीसेकेंड के साथ वर्तमान टाइमस्टैम्प प्राप्त करना चाहते हैं के साथ वर्तमान टाइमस्टैम्प जाओ, जावास्क्रिप्ट में मैं उपयोग Date.now()मिलीसेकेंड

1436030635348 

मैं नीचे की तरह कुछ करने की कोशिश की:

$time = str_replace(".","",microtime(true)); 

लेकिन कुछ समय यह ठीक से काम नहीं कर रहा है। जैसे यह एक या दो अंकों को कम करता है।

+1

आप मिलीसेकेंड में या माइक्रोसेकंड में टाइमस्टैम्प की ज़रूरत है? शीर्षक कहता है कि एक चीज और वास्तविक प्रश्न एक और –

+0

यह समस्या को हल कर रहा है। पीछे की ओर शून्य को प्रतिबिंबित नहीं किया जाता है, 'str_pad (str_replace ("।", "", Microtime (true)), 14, 0) ' – splash58

+0

@AlexAndrei: क्षमा करें मुझे मिली सेकंड में – Vishnu

उत्तर

9

यह कम अंक प्रिंट कर सकता है, क्योंकि यह एक फ्लोट वैल्यू है। तो यदि आपको 1234.0005 मिलता है, तो `0005 वास्तव में 500 माइक्रोसॉंड का मतलब है। 5 के बाद शून्य खो गए हैं क्योंकि यह अभी भी एक अपरिवर्तित फ्लोट वैल्यू है।

फ़ंक्शन microtime सिस्टम कॉल gettimeofday() पर आधारित है, जो माइक्रोसॉन्ड के लिए भी सटीक नहीं है। आम तौर पर यह 10 माइक्रोसॉन्ड के लिए सटीक है। Linux - Is gettimeofday() guaranteed to be of microsecond resolution भी देखें।

-edit- मुझे लगता है कि चश्मे microseconds से मिलीसेकंड में बदल गए हैं।

फ्लोट वैल्यू प्राप्त करने के लिए आपके पास एक पूर्णांक है, तो आप एक मान से गुणा कर सकते हैं। फ्लोट वैल्यू सेकंड का प्रतिनिधित्व करता है। माइक्रोसॉन्ड प्राप्त करने के लिए मिलीसेकंड या 1,000,000 प्राप्त करने के लिए 1000 से गुणा करें। चूंकि चश्मे (अब) मिलीसेकंड कहते हैं, आपको 1000 से गुणा करना चाहिए। 10k आपको 1/10ms = 100μs की सटीकता देगा। एक मिलीसेकंड एक सेकंड का एक हजारवां है। एक माइक्रोसॉन्ड एक सेकंड का दस लाखवां हिस्सा है।

कम लंबी कहानी, पूर्णांक मिलीसेकेंड में समय प्राप्त करने के लिए, इस का उपयोग करें:

$milliseconds = round(microtime(true) * 1000); 

नोट: वहाँ एक कारण है कि आप एक स्ट्रिंग या डिफ़ॉल्ट रूप से एक नाव के रूप में समय मिलता है। इसका कारण यह है कि 32 बिट सिस्टम पर, PHP का पूर्णांक भी 32 बिट्स है और यह मिलीसेकंड और माइक्रोसॉन्ड सहित टाइमस्टैम्प रखने के लिए पर्याप्त नहीं है। तो यह समाधान केवल 64 बिट सिस्टम पर अच्छा काम करेगा।

+0

तो मैं दशमलव को कैसे संरक्षित कर सकता हूं .. और किसी अन्य फ़ंक्शन को दशमलव के बिना टाइमस्टैम्प प्राप्त करने के लिए कैसे? – Vishnu

+0

'.' को बदलने के बजाय आप एक लाख से गुणा कर सकते हैं। – GolezTrol

+0

लॉल मिलियन या 10k? 10k काम करता है – Vishnu

0

मुझे लगता है कि तुम सिर्फ PHP में सूक्ष्म सेकंड के साथ एक समय-चिह्न प्राप्त करने के लिए इस सुविधा का उपयोग करने की आवश्यकता है:

int microtime (void) 

यह के रूप में निम्नलिखित link में दिखाया गया कोड स्निपेट निम्नलिखित का प्रयोग करें, दिखाता है कि मैं इसे बदल दिया था अपने प्रश्न के लिए उपयोगी हो के अनुसार: कि microtime() पीएचपी कार्य करने के लिए के बारे में

<?php 

function microtime_microseconds() 
{ 
    list($usec, $sec) = explode(" ", microtime()); 
    return round(($usec * 1000) + $sec); 
} 

$micro_time = microtime_microseconds(); 

echo $micro_time; 

?> 

और यह भी संदर्भ के लिए, कृपया देखें और इस PHP manual page पढ़ें।

+1

सही, php के [microtime function] पर एक नज़र डालें (http://php.net/manual/en/function.microtime.php) – Ali

+1

@ अली धन्यवाद अली, मैंने आपके सुझाव के अनुसार उत्तर अपडेट किया। –

+0

यह वही कार्य है ओपी का उपयोग कर रहा है। 'माइक्रोटाइम' या तो एक फ्लोट या एक स्ट्रिंग देता है। कोई int नहीं है W3schools उदाहरण जो आपने लिंक किया है, एक फ्लोट लौटने के लिए स्ट्रिंग संस्करण का उपयोग करता है। यह PHP के पुराने संस्करणों के प्रतिस्थापन है जो 'get_as_float = true' को' microtime 'के पैरामीटर के रूप में समर्थन नहीं करता है। तो, यह उत्तर ओपी की समस्या को किसी भी तरह से हल नहीं करता है। – GolezTrol

1
$timeStampData = microtime(); 
list($msec, $sec) = explode(' ', $timeStampData); 
$msec = round($msec * 1000); 

$result = $sec . $msec; 

कुछ इस

लेकिन टिप्पणी की तरह, कि मिलीसेकेंड में date.now() वापसी समय जे एस, नहीं माइक्रोसेकंड

+0

तो PHP में मिलीसेकंड में टाइमस्टैम्प कैसे प्राप्त करें? – Vishnu

+0

हाँ मुझे मिली सेकंड – Vishnu

+0

उदाहरण में उपरोक्त उदाहरण दिखाएं कि इसे कैसे प्राप्त किया जाए। यदि आप चाहते हैं कि आप माइक्रोसेकंड के साथ टाइमस्टैम्प प्राप्त करें - आपको इस राउंड ($ msec * 1000) को गोल ($ msec * 1000000) –

संबंधित मुद्दे