2012-03-20 139 views
3
<?php 
$a = 'MAY 05, 2001 00:54:00 AM'; 

echo date('Y-m-d',strtotime($a)).'<br />'; 

$b = 'MAY 05, 2001 05:54:00 AM'; 

echo date('Y-m-d',strtotime($b)).'<br />'; 

//MAY 05, 2001 00:54:00 AM return 1970-01-01 
//MAY 05, 2001 05:54:00 AM return 2001-05-05 

?> 
+0

所以你想做的事..你没有告诉你确切需要 – Rafee 2012-03-20 06:45:03

+0

<?php $ a ='AUG 09,2013 08:13:00 PM'; echo date('Y-m-d H:i:s',strtotime($ a))'。'
'; // return 2013-08-09 20:13:00 $ b ='AUG 29,2013 04:60:00 PM'; echo date('Y-m-d H:i:s',strtotime($ b))'。'
'; // return 1970-01-01 07:00:00 ?> that'it – miket 2012-03-20 07:00:37

+0

你想在这里显示小时/分钟/秒..你显示的代码工作良好..什么是错的 – Rafee 2012-03-20 07:04:10

回答

2

您已通过AM在24小时时间format.I已经纠正它

$a = 'MAY 05, 2001 00:54:00'; 

echo date('Y-m-d',strtotime($a)).'<br />'; 

$b = 'MAY 05, 2001 05:54:00 AM'; 

echo date('Y-m-d',strtotime($b)).'<br />'; 
3

AM意味着你使用的是12-hour clock。然而,在这个时钟系统中没有“零小时”,所以你的第一个例子00:54:00 AM不是有效的时间(12小时时钟从一到十二,然后翻转回am/pm切换到一个)。也许你的意思只是00:54:00(24小时制)或12:54:00 AM/PM(这将在一点之前6分钟)。

+0

并非如此:<?php $ a ='2013年8月22日03:60:00'; $ b ='AUG 29,2013 04:60:00 PM'; echo date('Y-m-d H:i:s',strtotime($ a))'。'
'; echo date('Y-m-d H:i:s',strtotime($ b))'。'
'; ?> – miket 2012-03-20 06:51:48

+0

@miket:那些日期也是无效的,因为第六十分钟没有这样的事情。 “04:59:00”之后的分钟将是“05:00:00”,而不是“04:60:00”。一些非常宽松的日期/时间解析器可能会接受像您提供的示例那样古怪的格式,但它很自然会被拒绝。 – 2012-03-20 07:26:16

+0

谢谢,我明白了。 – miket 2012-03-20 07:53:08