2011-01-30 14 views
16

मेरे पास इस प्रारूप में एक तिथि है: 20101101120000असामान्य तारीख प्रारूप को सबसे प्रभावी तरीके से टाइमस्टैंप में कनवर्ट करें?

मुझे इसे PHP के साथ एक टाइमस्टैम्प में बदलने की आवश्यकता है।

मैं PHP दस्तावेज़ ऑनलाइन खोज रहा हूं, लेकिन कुछ भी नहीं मिला जो सीधे रूपांतरित हो सकता है। क्या कोई अस्तित्व में है? यदि नहीं, तो रूपांतरण करने का सबसे प्रभावी तरीका क्या है? आपके सहयोग के लिए धन्यवाद।

+4

क्या उम्मीद करेंगे:

तो मैं आगे lonesomeday के जवाब पर (जो पूरी तरह से सही है) वास्तव में एक वैध स्वरूपित तारीख है कि वे उपयोगकर्ताओं को प्रदर्शित या अपने डाटाबेस में सम्मिलित कर सकते प्राप्त करने के लिए उन लोगों के लिए विस्तृत होगा आउटपुट इस उदाहरण के लिए हो? – Gumbo

उत्तर

22

आप DateTime::createFromFormat के साथ ऐसा कर सकते हैं:

$d = DateTime::createFromFormat('YmdGis', '20101101120000'); 

$d अब एक DateTime उदाहरण है। आप इसे $d->getTimestamp() के साथ एक टाइमस्टैम्प में परिवर्तित कर सकते हैं या DateTime विधियों का उपयोग कर सकते हैं।

ध्यान दें कि इसके लिए PHP 5.3 की आवश्यकता है।

+0

बेशक, सही! +1 –

+1

मैं अभी काम करता हूं जब आपका उत्तर पॉप अप हो गया था ... तेज प्रतिक्रिया के लिए +1 –

5
strtotime('20101101120000') 

....

+1

क्या आपने इसे आजमाया है? क्या यह काम करता है? दस्तावेज़ों से: * फ़ंक्शन को एक अंग्रेजी दिनांक प्रारूप * –

+1

युक्त एक स्ट्रिंग दी जाने की अपेक्षा की जाती है, लेकिन बहुत कम मजबूत, लेकिन हाँ, यह यहां काम करता है। – lonesomeday

+0

यह काम करता है और MySQL के साथ काम करते समय सबसे उपयोगी है। यह भी ध्यान रखें कि यह वर्तमान में सेट टाइमज़ोन पर जीएमटी बेसिंग में रूपांतरण करेगा। – Mchl

2

आप समारोह strptime की जरूरत है।

प्रारूपों का वर्णन strftime पर किया गया है।

+0

+1 - मुझे नहीं लगता कि इसमें अधिक अपवर्तक क्यों नहीं हैं! PHP 4 पर भी काम करता है। –

+0

नोट: आंतरिक रूप से, यह फ़ंक्शन सिस्टम की सी लाइब्रेरी द्वारा प्रदान किए गए strptime() फ़ंक्शन को कॉल करता है। यह कार्य विभिन्न ऑपरेटिंग सिस्टमों में उल्लेखनीय रूप से अलग व्यवहार प्रदर्शित कर सकता है। Date_parse_from_format() का उपयोग, जो इन मुद्दों से ग्रस्त नहीं है, PHP 5.3.0 और बाद में अनुशंसित है। – mariusnn

0

मैं केवल इस हल किए गए प्रश्न में जोड़ता हूं क्योंकि यह उन उपयोगकर्ताओं के लिए सहायक हो सकता है जो यहां पर ठोकर खाते हैं (जैसे मैंने किया) और वास्तविक डेटाटाइम टाइमस्टैम्प प्राप्त करने के लिए देख रहे हैं।

सबसे लोगों के लिए मेरे धारणा जब वे उल्लेख टाइमस्टैम्प है कि वे एक सामान्य "YYYY-MM-YYY HH: MM: SS" के लिए देख रहे है टाइमस्टैम्प नहीं एक यूनिक्स टाइमस्टैम्प जो आप जब आप getTimestamp() विधि का उपयोग मिलता है (यदि आप वास्तव में यूनिक्स टाइमस्टैम्प की तलाश में हैं तो स्वीकार्य उत्तर देखें)।

$d = DateTime::createFromFormat('YmdGis', '20101101120000'); 

$formatedDate = $d->format('Y-m-d H:i:s'); // will return 2010-11-01 12:00:00 
$formatedDate = $d->format('m-d-Y h:i A'); // will return 11-01-2010 12:00 PM 
संबंधित मुद्दे