2014-09-18 163 views
0

我有个约会:格式化日期 - 没有时间?

30/12/2010 

我用:

DateTime::createFromFormat('d/m/Y', $input['date']); 

但这输出:

2010-12-30 21:15:37 

我怎么能只输出日期,而不是时间吗?

+1

那么你是如何真正输出它?因为'DateTime :: createFromFormat('d/m/Y',$ input ['date']);'不会生成任何输出 – 2014-09-18 21:31:19

+0

['createFromFormat'](http://php.net/manual/en/ datetime.createfromformat.php)返回['DateTime'对象](http://php.net/manual/en/class.datetime.php)。使用['format()'](http://php.net/manual/en/datetime.format.php)方法将输出格式化为您喜欢的格式。 – 2014-09-18 21:42:57

回答

2

事实上,你的解决方案是在你的问题。 createFromFormat方法返回给我们一个DateTime对象。您可以使用它来打印格式化的日期时间。

$date = DateTime::createFromFormat('d/m/Y', $input['date']); 
echo $date->format("Y-m-d"); 
+0

谢谢您的反馈意见@MarkBaker您是对的。我改变了它。 – hkulekci 2014-09-18 21:40:40

+0

我可以做没有第一行的日期 - >格式? – panthro 2014-09-18 21:40:45

+0

不,因为我想,你的$ input ['date']变量内容不是DateTime对象,它只是字符串。有一个DateTime对象使用格式化方法。 – hkulekci 2014-09-18 21:43:02

0

我期望21:15:37是当前时间。您不必显示时间,或者可以重新设定时间 - 例如,如果您想要,可以在00:00:00。

// public DateTime DateTime::setTime (int $hour , int $minute [, int $second = 0 ]) 
$date = DateTime::createFromFormat('d/m/Y', $input['date']); 
$date->setTime(0, 0, 0); 
echo $date->format("Y-m-d"); // or other format 
+0

我宁愿不显示它,我该怎么做? – panthro 2014-09-18 21:37:46