2014-12-07 123 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');