从doctrine 2中的datetime对象获取日期作为字符串

时间:2011-08-26 12:50:44

标签: php datetime doctrine doctrine-orm

在我的一个实体中,我有一个名为insert_date的受保护属性,它是一个日期时间。

当我之后提取数据时,我没有将日期作为字符串,我得到一个对象。我的var转储:

<pre class='xdebug-var-dump' dir='ltr'> <b>object</b>(<i>DateTime</i>)[<i>1560</i>] <i>public</i> 'date' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'2011-08-26 12:40:29'</font> <i>(length=19)</i> <i>public</i> 'timezone_type' <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>3</font> <i>public</i> 'timezone' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Europe/London'</font> <i>(length=13)</i> </pre><pre class='xdebug-var-dump' dir='ltr'> <b>object</b>(<i>DateTime</i>)[<i>1571</i>] <i>public</i> 'date' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'2011-08-26 12:40:29'</font> <i>(length=19)</i> <i>public</i> 'timezone_type' <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>3</font> <i>public</i> 'timezone' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Europe/London'</font> <i>(length=13)</i>

我试过了:

foreach($dateObj as $date) {

}

但是它没有提取......我如何从这个对象中获取日期属性?即使$insert_date->date也不起作用。

2 个答案:

答案 0 :(得分:53)

使用

if($dateObj)
{
    $dateObj->format('Y-m-d H:i:s');
}

答案 1 :(得分:14)

要确保您的$ dateObj是实际的日期时间obj,请使用:

if($dateObj instanceof \DateTime){
    $dateObj->format('Y-m-d H:i:s');
}

使用“instanceof”检查对象是否具有所需的格式函数,因此如果不是则不会抛出错误。