2012-04-03 71 views
0

我想将此日期格式改为:“Tue Apr 4 15:00:03 GMT + 0300 2012”,以PHP改为“3.4.2012”。可能吗?用PHP更改日期格式

我想:

$date="Tue Apr 3 15:00:03 GMT+0300 2012"; 
echo date('d.m.Y', strtotime($date)); 

,但它会导致:03.04.2015。我究竟做错了什么?

+1

[将一个日期格式转换成另一个在PHP中]可能的重复(http://stackoverflow.com/questions/2167916/convert-one-date-format-into-another-in-php ) – PeeHaa 2012-04-03 12:54:10

+0

我已经在PHP 5.3.18上运行了这个(Fedora 14),它给出了正确的结果,你在用什么? – h00ligan 2012-04-03 13:10:18

回答

3

您的日期格式不正确,至少它不是RFC 2822日期格式,

Tue, 3 Apr 2012 15:00:03 +0300 

strtotime是非常灵活的,但它不能猜测你的意思是...

+0

strtotime可以采取吨的日期/时间格式。它不一定是RFC 2822:http://ca2.php.net/manual/en/datetime.formats.php – Paulpro 2012-04-03 12:55:08

+0

是的,但它看起来像RFC 2822是他试图使用的格式 – scibuff 2012-04-03 13:27:28

+0

其动作脚本格式,我想在网页中传输..我最终做了什么是分裂它,并将其作为日期()作为PHP接受的格式之一,所以日期()现在知道如何转换它。 – sstauross 2012-04-05 12:31:27

4

Read the Manual使用功能前,特别是要求别人读给你,就像我只是做了回答你的问题之前:

date('j.n.Y', strtotime($date)); 

Codepad Example

+0

我认为他的问题是不正确的一年,而不是领先的零 – scibuff 2012-04-03 12:51:17

+0

我认为在他的情况下,问题是strtotime()没有正确解析日期字符串,而不是日/月的前导零。 – mobius 2012-04-03 12:52:14

+1

@scibuff很确定它是领先的零。 strtotime没有解析该日期的麻烦:http://codepad.viper-7.com/K3s1Pv我认为2015年在OP是只是一个错字 – Paulpro 2012-04-03 12:53:31