2014-12-07 111 views
-2

我使用DateTime改變我的$日期字符串DateTime格式字符串返回

$date = (new DateTime($date))->format('D, M d, Y'); 

不過的格式,呼籲gettype(Sdate)事後給出了返回的值作爲一個字符串。 PHP manual說它應該

返回一個新的DateTime實例或FALSE失敗。

我得到的是實例,但是返回的格式是否在字符串中?儘管使用DateTime函數,但事後總是必須使用strtotime,或者我做了完全錯誤的事情嗎?

+2

沒有,手冊上說的[格式( )](http://www.php.net/manual/en/datetime.format.php)方法返回一個字符串....'公共字符串日期時間::格式(字符串$格式)' – 2014-12-07 18:49:55

+1

但是,爲什麼你會考慮當您使用DateTime對象時,完全可以使用'strtotime' ....這就像將引擎從法拉利中取出一樣並用草坪割草機替換它 – 2014-12-07 18:54:40

+1

如果你想實際創建一個DateTime實例,那麼使用'$ dateObject = new DateTime($ date);',然後你可以用'$ dateObject'完成你想做的事情 – 2014-12-07 18:57:35

回答

3

您正在查看DateTime::createFromFormat()方法的文檔頁面,該方法確實接受指定特定格式的字符串並返回DateTime對象。

DateTime::format()另一方面接受格式字符串並將日期返回爲字符串。

我相信這是你真正想要的東西:

$myDate = '2014-12-07 10:00:00'; 
$dateTime = new DateTime($myDate); 

format()將允許你從DateTime實例恢復相同的字符串:

$originalDate = $dateTime->format('Y-m-d H:i:s');