如何从datetime类中仅获取“日期”

时间:2014-01-22 09:16:21

标签: php datetime

我有Datetime对象,其中包含'2013-01-22 13:23:43'

我只想选择2013-01-22并将其恢复到Datetime课程。

我想我可以

$newdatetime = new DateTime($datetime->format('Y-m-d'));

但它看起来有点笨拙。

你有什么想法??

4 个答案:

答案 0 :(得分:4)

你做错了。

使用DateTime对象进行处理,并使用您想要的任何格式输出

意思是,不应该将单个日期传递回新的DateTime对象

相反,您应该使用普通的DateTime对象(如果对您不重要,可以忽略时间),然后,在完成它之后,只需将其格式化,如下所示:

$date = new DateTime('can haz date plz');

/* Do some processing here using $date */

$date->format("Y-m-d"); //See? No time!

不要启动不需要的对象。如果您不需要DateTime对象中的时间,只需忽略它。

如果必须删除时间,您可以使用DateTime::setTime()方法:

$date->setTime(0, 0, 0);

答案 1 :(得分:0)

DateTime类构造期望将日期/时间字符串作为第一个参数,将DateTimeZone作为第二个参数。您必须使用格式功能来格式化日期。查看更多信息here。如果您需要相同日期时间对象的副本,可以使用clone,请参阅下面的示例:

$objDateTime = new DateTime('2013-01-22 13:23:43');
$newObj = clone $objDateTime;
echo $newObj->format('Y-m-d');

答案 2 :(得分:-1)

尝试以下,可能会有所帮助

$date = date('Y-m-d'); 

OR

$date = date('Y-m-d',strtotime($somedate)); // $somedate = '2013-01-22 13:23:43'

答案 3 :(得分:-2)

$jobdate = 2013-01-22 13:23:43; $pieces = explode(" ", $jobdate); $pieces[0]; // 2013-01-22 $pieces[1]; // 13:23:43