2011-08-26 20 views
24

W jednym z moich podmiotów mam chronioną właściwość o nazwie insert_date, która jest datetime.Pobierz datę jako ciąg z obiektu datetime w doktrynie 2

Kiedy później wyodrębniam dane, nie otrzymam daty jako napisu, otrzymam obiekt. Moja var wysypisko:

<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> 

Próbowałem:

foreach($dateObj as $date) { 

} 

Ale nie wyodrębnić ... Jak mogę dostać właściwość data z tego przedmiotu? Nawet $insert_date->date nie działa.

Odpowiedz

50

użycie

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

Błąd krytyczny: wywołanie formatu funkcji członka() na obiekcie innym niż obiekt? –

+4

Niektóre z twoich rekordów mogą mieć wartość 'NULL' w bazie danych. Sprawdź, czy '$ dateObj' nie jest pusty przed formatowaniem:' if (! Empty ($ dateObj)) $ dateObj-> format (...) '. – J0HN

+0

John ma rację, zaktualizowany kod –

13

Aby upewnić się, że $ dateObj jest rzeczywiste wykorzystanie datetime obj:

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

używając „instancją” sprawdza, czy obiekt będzie miał wymaganej funkcji formatowania więc przyzwyczajenie rzut błędy, jeśli nie.

Powiązane problemy