obtener fecha español actual php laravel laravel-4 php-carbon

php - español - Uso de carbono para devolver una diferencia de fecha y hora legible para humanos



obtener fecha actual laravel carbon (5)

Estoy usando Laravel 4 para crear mi proyecto.

Actualmente estoy creando la sección de comentarios y quiero mostrar cuánto tiempo hace que se creó la publicación, algo así como "hace 10 minutos" y "hace 2 semanas" de Facebook, etc.

Hice un poco de investigación y descubrí que un paquete llamado Carbon puede hacer esto.

Después de leer los documentos de Laravel, dice:

Por defecto, Eloquent convertirá las created_at , updated_at y deleted_at en instancias de Carbon , que proporciona una variedad de métodos útiles, y amplía la clase PHP DateTime nativa.

Pero cuando devuelvo una columna de fecha que he creado, no se muestra como en Facebook.

El código que estoy usando es:

return array(''time'');

¿Algún cuerpo usó este paquete de carbono que podría ayudarme a hacer lo que necesito? Estoy bastante confundido.


Carbon :: parse ($ p-> created_at) -> diffForHumans ();


De forma predeterminada, Eloquent convertirá las columnas created_at, updated_at y deleted_at en instancias de Carbon. Entonces, tu código debería ser así:

$comment->created_at->diffForHumans();

Es muy genial. Producirá una cadena como hace 2 minutes ago o 1 day ago . Plurar o singular, segundos, minutos, horas, días, semanas o años, se ejecuta automáticamente. Lo probé en Laravel versión 4.1.24.


Para cualquier versión de Laravel

$message->updated_at->diffForHumans();


Si lee los documentos de Carbon para obtener lo que desea, llame al método diffForHumans() .

<?php echo /Carbon/Carbon::createFromTimeStamp(strtotime($comment->created_at))->diffForHumans() ?>


usa este código hace tiempo:

public function time_elapsed_string($datetime, $full = false) { $now = new DateTime; $ago = new DateTime($datetime); $diff = $now->diff($ago); $diff->w = floor($diff->d / 7); $diff->d -= $diff->w * 7; $string = array( ''y'' => ''year'', ''m'' => ''month'', ''w'' => ''week'', ''d'' => ''day'', ''h'' => ''hour'', ''i'' => ''minute'', ''s'' => ''second'', ); foreach ($string as $k => &$v) { if ($diff->$k) { $v = $diff->$k . '' '' . $v . ($diff->$k > 1 ? ''s'' : ''''); } else { unset($string[$k]); } } if (!$full) $string = array_slice($string, 0, 1); return $string ? implode('', '', $string) . '' ago'' : ''just now'';

}