2012-03-20 134 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