2010-12-01 13 views
50

< 5.3 से कम संस्करणों में टाइमस्टैम्प से डेटटाइम कैसे बनाते हैं?PHP में टाइमस्टैम्प से डेटटाइम बनाना <5.3

5.3 में यह होगा:

$date = DateTime::createFromFormat('U', $timeStamp); 

दिनांक समय निर्माता एक स्ट्रिंग चाहता है, लेकिन यह मेरे

$date = new DateTime("@$timeStamp"); 
+1

मैनुअल के अनुसार, कि काम करना चाहिए। क्या आपने '$ date = new DateTime ('@'। $ TimeStamp) की कोशिश की है;'? और "काम नहीं किया" द्वारा, आपका क्या मतलब है? – Jonah

+1

परिभाषित * मेरे लिए काम नहीं किया *। त्रुटियाँ? गलत तारीख/समय? –

+0

घातक त्रुटि: संदेश के साथ अपवाद अपवाद 'अपवाद' दिनांक दिनांक :: __ निर्माण() [datetime.--construct]: स्थिति 0 (@) पर समय स्ट्रिंग (@) को पार्स करने में विफल: अप्रत्याशित चरित्र ' – Yarin

उत्तर

3

निम्नलिखित कार्यों के लिए काम नहीं किया:

$dateString = date('Ymd', $timeStamp); 
$date = new DateTime($dateString); 
+0

यह काम नहीं कर रहा है :(इसे कैसे ठीक करें – user3501407

+0

टाइमस्टैम्प [1] सिर्फ वाईएमडी नहीं है, यह 1 जनवरी 1 9 70 यूटीसी के बाद सेकंड्स (कुछ मामलों में माइक्रो सेकेंड) है। [1] = https: // en। wikipedia.org/wiki/Unix_time –

+0

'$ dateString = date ('U', $ timeStamp) हो सकता है;' फिर ?! – Pete

31

मान लीजिए कि आप तिथि और समय चाहते हैं और पिछले उत्तर की तारीख की तारीख नहीं:

$dtStr = date("c", $timeStamp); 
$date = new DateTime($dtStr); 

हालांकि ऐसा करने के लिए बहुत मूर्खतापूर्ण लगता है।

+0

यह समाधान काम करता है, लेकिन अनावश्यक रूप से दिनांक स्ट्रिंग को स्वरूपित करने में समय व्यतीत करता है, फिर री-पार्सिंग। – Jonah

11

यह काम नहीं कर रहा है क्योंकि आपका $ टाइमस्टैम्प चर खाली है। डेटटाइम बनाने से पहले $ TimeStamp के मान को प्रतिबिंबित करने का प्रयास करें और आप देखेंगे। यदि आप इसे चलाते हैं:

new DateTime('@2345234'); 

आपको कोई त्रुटि नहीं मिलती है। हालांकि, यदि आप चलाते हैं:

new DateTime('@'); 

यह सही त्रुटि उत्पन्न करता है जो आपने कहा है कि यह आपको देता है। आपको कुछ डीबगिंग करने की आवश्यकता होगी और पता लगाएं कि क्यों $ टाइमस्टैम्प खाली है।

+0

चेतावनी दीजिये , कि कन्स्ट्रक्टर में '@' का उपयोग करते हुए पर्यावरण के वर्तमान टाइमज़ोन और टाइमज़ोन को दूसरी तर्क में आपूर्ति करते समय अनदेखा कर दिया जाएगा, यहां तक ​​कि '$ dateTime-> संशोधित (' @ '1234) का उपयोग करते समय भी' setTimezone (date_default_timezone_get() का उपयोग करें) 'यूटीसी टाइमज़ोन से पर्यावरण समय क्षेत्र में बदलने के लिए। – fyrye

+0

मुझे यह वही समस्या थी जब मैंने खाली उत्तर के साथ' @ 'का उपयोग किया, इस उत्तर के लिए धन्यवाद। त्रुटि संदेश PHP दिया गया था l सहायक से ess, यह '@' निहित समस्या थी। – thomasrutter

38

PHP 5> = 5.2.0

$date = new DateTime(); 
$date->setTimestamp($timeStamp); 
+5

सोचें कि यह PHP 5> = 5.3 – Spencer

+1

गलत http://php.net/manual/en/datetime.settimestamp.php – DIMMSum

+0

यह उत्तर असंगत है, setTimestamp() php 5.3 में जोड़ा गया है – Arkemlar

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