2011-09-09 13 views
5

Ben bir yıl (2002) var ve şu biçime almaya çalışıyorum:php - biçimlendirme tarihi ISO8601?

2002-00-00T00: 00: Ben bu son olan çeşitli tekrarlamalar, denenmiş 00

:

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

Ama yaklaşabilir bile, her zaman +00 eklemek görünüyor: bunun sonuna kadar 00 ...

cevap

13

PHP'de 'c' biçiminde daima ofset dilimini ekler. Bundan kaçınamazsın. Ama bileşenlerden tarihini kendiniz oluşturabilirsiniz:

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

Hep gerekenden daha işler daha karmaşık hale görünüyor ... teşekkürler! – KumbaThought

+1

omg! Bunu uzun zamandır arıyordum. 'C' parçasını buldum ama T. T'den kaçmak zorunda olduğumu bilmiyordum. Teşekkürler. –

+4

gmdate ('Y-m-d \ TH: i: s \ Z', $ tarih) – 4esn0k

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

Daha iyi açıklama için daha fazla detaylandırma – Rumit

+0

Bazı sınırlı kısa vadeli yardımlar sağlayabilen bu kod parçacığı için teşekkür ederiz. Doğru bir açıklama [// meta.stackexchange.com/q/114762] uzun vadeli değerini * göstererek * neden * bu sorunun iyi bir çözümü olduğunu ve gelecekteki okuyuculara daha yararlı olmasını diğer, benzer sorular. Lütfen yaptığınız varsayımlar dahil, bazı açıklamalar eklemek için cevabınızı [düzenleyin]. –