cómo obtener la fecha / hora actual como un objeto de fecha en PHP

¿Cómo se obtiene la fecha de hoy, como un objeto de fecha?

Estoy tratando de calcular la diferencia entre alguna fecha de inicio y hoy. Lo siguiente no funcionará, porque getdate() devuelve una matriz y no un objeto de fecha:

 $today = getdate(); $start = date_create('06/20/2012'); $diff = date_diff($start, $today); echo($today . '
' . $start . '
' . $diff);

Salida:

Matriz ([segundos] => 8 [minutos] => 1 [horas] => 16 [mday] => 11 [wday] => 1 [mon] => 6 [año] => 2012 [yday] => 162 [día laborable] => lunes [mes] => junio [0] => 1339455668)

DateTime Object ([date] => 2012-06-20 00:00:00 [timezone_type] => 3 [timezone] => America / Los_Angeles)

 new DateTime('now'); 

http://www.php.net/manual/en/datetime.construct.php

La comparación es fácil:

 $today = new DateTime('now'); $newYear = new DateTime('2012-01-01'); if ($today > $newYear) { } 

Edición de Op. Sys . Sólo necesitaba llamar a date_default_timezone_set , y luego este código funcionó para mí.

Para obtener la diferencia en días, usa esto:

 $today = new DateTime('today'); 

el tiempo en este objeto será 00:00:00

Si desea diferencia con horas, minutos y segundos, use esto:

 $now = new DateTime('now'); 

Terminé usando el constructor date_create (sin parámetro) para obtener la fecha actual.

 $diff = date_diff(date_create('06/20/2012'), date_create()); print_r($diff); 

Salida:

DateInterval Object ([y] => 0 [m] => 0 [d] => 8 [h] => 6 [i] => 30 [s] => 40 [invert] => 1 [días] => 8)

No tengo idea de por qué, pero la respuesta de Mike B (y cualquier constructor que intenté para DateTime ) arrojó un error para mí en PHP5 / IIS.