2010-10-25 13 views
8

Espero que el título no sea demasiado críptico. Tengo una matriz con un objeto DATETIME y estoy tratando de encontrar cómo hacer eco de esto en una página.PHP: DATETIME en array como objeto. Cómo hacer eco

["created"]=> object(DateTime)#3 (3) { ["date"]=> string(19) "2010-10-22 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" 

¿Alguien me puede ayudar?

fecha tratado() pero llegar:

Warning: date() expects parameter 2 to be long, object given in C:\ 

cualquier ayuda más apreciado,

Jonesy

Respuesta

8

Uso DateTime::format(). La sintaxis de la máscara es idéntica a date().

echo $value->format('Y-m-d H:i:s'); 
1

Si se trata de un php5 reales DateTime objeto continuación, puede utilizar el método format hacerse eco de que

$myDate = $myArray['created']; 
echo $myDate->format('Y-m-d H:i:s'); 
0

añado esta respuesta, aunque no estoy seguro de que responde específicamente a la cuestión (y mejor respuesta ya está allí, sin embargo), pero no pude encontrar mucho otros lugares donde se menciona el formato anterior (date/timezone_type/timezone).

Si usted tiene la fecha traducido del objeto a la matriz

  • través var_export

DateTime::__set_state(array( 'date' => '2017-12-05 11:58:25.428595', 'timezone_type' => 3, 'timezone' => 'US/Pacific', ))

  • o json_encode

{"date":"2017-12-05 11:57:07.938671","timezone_type":3,"timezone":"US\/Pacific"}

puede utilizar de nuevo el método mágico DateTime::__set_state mencionado anteriormente a convertir de nuevo a un objeto DateTime .

No estoy seguro de cómo aquí __set_state podría ser bidireccional, pero hace la magia. No pude encontrar la documentación.

Pero se puede probar aquí: http://sandbox.onlinephpfunctions.com/code/0a18e6937e7d4373beb91713f2e6e5f75f9af3e2