2011-09-09 15 views
5

मैं एक वर्ष (2002) है और मैं यह निम्न स्वरूप में प्राप्त करने के लिए कोशिश कर रहा हूँ:php - प्रारूप दिनांक ISO8601?

2002-00-00T00: 00: 00

मैं विभिन्न पुनरावृत्तियों, जिनमें से आखिरी यह था की कोशिश की :

$testdate = DateTime::createFromFormat(DateTime::ISO8601, date("c")) 
echo date_format($testdate, '2002'); 

लेकिन, भले ही मैं करीब आ, यह हमेशा 00 को जोड़ने के लिए लगता है: यह के अंत तक 00 ...

उत्तर

13

PHP में 'सी' प्रारूप हमेशा समय क्षेत्र ऑफसेट जोड़ देता है। आप इससे बच नहीं सकते हैं। लेकिन आप तारीख खुद के घटकों से निर्माण कर सकते हैं:

date('Y-m-d\TH:i:s', $testdate); 
+0

मैं हमेशा के लिए आवश्यकता से बातें और अधिक जटिल बनाने के लिए लग रहे हैं ... धन्यवाद! – KumbaThought

+1

omg! मैं इसे लंबे समय से ढूंढ रहा था। मैंने 'सी' भाग निकाला, लेकिन मुझे नहीं पता था कि मुझे टी से बचना पड़ा था। मुझे टी व्हीव के लिए टाइमज़ोन मिल रहा था! धन्यवाद। –

+4

gmdate ('y-m-d \ TH: i: s \ z', $ date) – 4esn0k

0
date('Y-m-d\TH:i:s\Z', time() - date('Z')); 
+5

बेहतर स्पष्टीकरण के लिए विस्तृत करें – Rumit

+0

इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित अल्पकालिक सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण [बहुत सुधार होगा] (// meta.stackexchange.com/q/114762) यह दिखाकर इसका दीर्घकालिक मूल्य * क्यों * यह समस्या का एक अच्छा समाधान है, और भविष्य के पाठकों के साथ इसे और अधिक उपयोगी बना देगा अन्य, समान प्रश्न। आपके द्वारा किए गए अनुमानों सहित कुछ स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें। –