2011-12-27 259 views

回答

3
$thedate = '01/12/2011'; 
$date = DateTime::createFromFormat('d/m/Y', $thedate); 

print($date->format('m')); 

PHP的DateTime對象只能從PHP 5.2.3的PHP 5.2和createFromFormat()獲得。

另外,您可以僞造的時間戳是正確的格式:

$thedate = str_replace('/', '-', '01/12/2011'); 

$date = strtotime($thedate); 
print(date('m', $date)); 
+0

+1你應該比較喜歡DateTime對象,他們做的最好的工作 – Anonymous 2011-12-27 09:56:21

+0

@DanSurfrider是的,它不會在2038年死去: ) – PeeHaa 2011-12-27 10:00:50

+0

嗨,Peehaa ..謝謝你的回覆。我試過你的代碼,但我得到一個錯誤消息,說 - 致命錯誤:調用未定義的方法DateTime :: createfromformat() – 2011-12-27 10:49:10

2

嘗試

$v = explode('/', $date); 
echo $v[1]; 

在PHP 5.4+:

$month = explode('/', $date)[1]; 

我也寫了:

$t = strtotime($date); 
echo date('m', $t); 

,因爲在格式12/10/2012日期將被視爲英語日期,以便第二部分10被視爲一個月的日子並不像月份數,這將不起作用。您應該使用

DateTime::createFromFormat('d/m/Y', $date) 

as @PeeHaa建議。

+0

strtotime()將第二個數字視爲日期 – 2011-12-27 09:53:44

+0

@piotrekkr它以這種格式處理。正確的'格式'將是:'01-12-2011' – PeeHaa 2011-12-27 10:02:34

+0

你是對的,我的錯誤 – piotrekkr 2011-12-27 11:42:15

相關問題