दिलचस्प पोस्ट
एचटीएमएल को पीडीएफ में कनवर्ट करने के लिए iText का उपयोग करना कैमरा एसडीके के साथ कैमरे तक पहुंचें ब्लॉक स्कोप मूल रूप से जावास्क्रिप्ट में लागू क्यों नहीं किया गया था? क्यों नेट पर बैंकर के गोलाकार का इस्तेमाल होता है? Inno सेटअप स्क्रिप्ट में HTTP पोस्ट अनुरोध PHP में sprintf फ़ंक्शन का उपयोग क्यों करें? Jquery Tablesorter के साथ दिनांक छँटाई समस्या Facebook API का उपयोग करके स्थान और ईमेल प्राप्त नहीं कर सकते आप एक तेज दिनांक ऑब्जेक्ट कैसे बना सकते हैं पत्ता हस्ताक्षर को सत्यापित करने में असमर्थ डॉट वर्ण '।' अनुरोध के लिए एमवीसी वेब एपीआई 2 में जैसे कि एपीआई / लोक / एसटीएएफएफ .45287 PHP: एक stdClass वस्तु की गणना करें पृष्ठ को पूरी तरह से भरी हुई फंक्शन कैसे निष्पादित करें? एंड्रॉइड स्टूडियो: विफलता सीएमडी में अजगर टाइप न करने के लिए विंडोज पर पायथन सेट करें

PHP के साथ आइसो 8601 प्रारूप के रूप में एक दिनांक प्रदर्शित कैसे करें

मैं अपने MySQL डाटाबेस से एक आईएसओ 8601 फॉर्मेटेड स्ट्रिंग के रूप में PHP के साथ एक डेटटाइम प्रदर्शित करने की कोशिश कर रहा हूं लेकिन यह गलत हो रहा है।

17 अक्टूबर 2008 ये आ रहा है: 1 9 6 9 -31 -31 टी 18: 33: 28-06: 00 जो स्पष्ट रूप से सही नहीं है (वर्ष 1 9 6 9 नहीं होना चाहिए)

यह कोड मैं उपयोग कर रहा हूं:

<?= date("c", $post[3]) ?> 

$post[3] is the datetime (CURRENT_TIMESTAMP) मेरे MySQL डाटाबेस से $post[3] is the datetime (CURRENT_TIMESTAMP) है

किसी भी विचार क्या गलत हो रहा है?

वेब के समाधान से एकत्रित समाधान "PHP के साथ आइसो 8601 प्रारूप के रूप में एक दिनांक प्रदर्शित कैसे करें"

date का दूसरा तर्क एक UNIX टाइमस्टैम्प है, डेटाबेस टाइमस्टैम्प स्ट्रिंग नहीं।

आपको strtotime के साथ अपना डेटाबेस टाइमस्टैम्प कन्वर्ट करने की आवश्यकता है

 <?= date("c", strtotime($post[3])) ?> 

PHP संस्करण 5.2 में उपलब्ध डेटटाइम कक्षा का उपयोग करना यह इस तरह किया जाएगा:

 $datetime = new DateTime('17 Oct 2008'); echo $datetime->format('c'); 

इसे कार्रवाई में देखें

PHP 5.4 के अनुसार आप इसे एक-लाइनर के रूप में कर सकते हैं:

 echo (new DateTime('17 Oct 2008'))->format('c'); 

प्रक्रियात्मक शैली:

 echo date_format(date_create('17 Oct 2008'), 'c'); // Output : 2008-10-17T00:00:00+02:00 

वस्तु उन्मुख शैली:

 $formatteddate = new DateTime('17 Oct 2008'); echo $datetime->format('c'); // Output : 2008-10-17T00:00:00+02:00 

हाइब्रिड 1:

 echo date_format(new DateTime('17 Oct 2008'), 'c'); // Output : 2008-10-17T00:00:00+02:00 

हाइब्रिड 2:

 echo date_create('17 Oct 2008')->format('c'); // Output : 2008-10-17T00:00:00+02:00 

टिप्पणियाँ :

1) आप अपने प्रारूप के लिए 'c' विकल्प के रूप में 'Ymd\TH:i:sP' प्रयोग भी कर सकते हैं।

2) आपके इनपुट का डिफ़ॉल्ट समय क्षेत्र आपके सर्वर का समय क्षेत्र है यदि आप एक अलग समय क्षेत्र के लिए इनपुट चाहते हैं, तो आपको अपने समय क्षेत्र को स्पष्ट रूप से सेट करना होगा। यह आपके आउटपुट को भी प्रभावित करेगा, हालांकि:

 echo date_format(date_create('17 Oct 2008 +0800'), 'c'); // Output : 2008-10-17T00:00:00+08:00 

3) यदि आप अपने इनपुट से अलग समय क्षेत्र के लिए आउटपुट चाहते हैं, तो आप अपने समय क्षेत्र को स्पष्ट रूप से सेट कर सकते हैं:

 echo date_format(date_create('17 Oct 2008')->setTimezone(new DateTimeZone('America/New_York')), 'c'); // Output : 2008-10-16T18:00:00-04:00 

पूर्व PHP 5 के लिए:

 function iso8601($time=false) { if(!$time) $time=time(); return date("Ymd", $time) . 'T' . date("H:i:s", $time) .'+00:00'; } 

यहाँ पूर्व PHP 5 के लिए अच्छा कार्य है: मैंने अंत में जीएमटी अंतर जोड़ा, यह कठिन नहीं है।

 function iso8601($time=false) { if ($time === false) $time = time(); $date = date('Ymd\TH:i:sO', $time); return (substr($date, 0, strlen($date)-2).':'.substr($date, -2)); }