with meaning español composer php laravel-4 timestamp eloquent

php - meaning - Cómo cambiar el formato predeterminado en el valor de created_at y updated_at laravel



unsigned laravel (4)

Laravel 4.xy 5.0

Para cambiar el tiempo en la base de datos, use: http://laravel.com/docs/4.2/eloquent#timestamps

Proporcionar un formato de marca de tiempo personalizado

Si desea personalizar el formato de sus marcas de tiempo, puede anular el método getDateFormat en su modelo:

class User extends Eloquent { protected function getDateFormat() { return ''U''; } }

Laravel 5.1+

https://laravel.com/docs/5.1/eloquent

Si necesita personalizar el formato de sus marcas de tiempo, establezca la propiedad $ dateFormat en su modelo. Esta propiedad determina cómo se almacenan los atributos de fecha en la base de datos, así como su formato cuando el modelo se serializa a una matriz o JSON:

class Flight extends Model { /** * The storage format of the model''s date columns. * * @var string */ protected $dateFormat = ''U''; }

Soy nuevo en Laravel. Estoy creando una aplicación con laravel. Cuando estoy creando una publicación, los valores de "created_at" y ''updated_at "se ven así:

2014-06-26 04:07:31 2014-06-26 04:07:31

Pero quiero que estos valores sin tiempo se vean así:

2014-06-26 2014-06-26

Sólo fecha sin hora.

Es posible ???

Por favor, ayúdame.

Mi modelo de publicación:

<?php class Post extends /Eloquent { protected $fillable = array(''title'', ''body'', ''meta'',''reporter'', ''slug'', ''image'',''top''); public static $rules = array( ''title''=>''required|min:2'', ''body''=>''required|min:20'', ''reporter''=> ''required|min:2'', ''image''=>''image|mimes:jpeg,jpg,bmp,png,gif'' ); public function categories() { return $this->belongsToMany(''Category''); } }

Mi tienda de Post Controller:

public function store() { $validator = Validator::make(Input::all(), Post::$rules); if ($validator->passes()) { $post = new Post; $post->title = Input::get(''title''); $post->body = Input::get(''body''); $post->reporter = Input::get(''reporter''); $post->meta = Input::get(''meta''); $post->slug = Input::get(''title''); $post->top = Input::get(''top''); $image = Input::file(''image''); if ($image) { $filename = date(''Y-m-d-H:i:s'')."-".$image->getClientOriginalName(); Image::make($image->getRealPath())->resize(250, 145)->save(''public/images/postimages/''.$filename); $post->image = ''images/postimages/''.$filename; } $categories = Input::get(''categories''); $post->save(); $post->categories()->sync($categories); return Redirect::route(''admin.posts.index'') ->with(''message'', ''Product Created''); } return Redirect::back() ->with(''message'', ''Something went wrong'') ->withErrors($validator) ->withInput(); }

Por favor, ayúdame.


En tu modelo de Post agrega dos métodos de acceso como este:

public function getCreatedAtAttribute($date) { return Carbon/Carbon::createFromFormat(''Y-m-d H:i:s'', $date)->format(''Y-m-d''); } public function getUpdatedAtAttribute($date) { return Carbon/Carbon::createFromFormat(''Y-m-d H:i:s'', $date)->format(''Y-m-d''); }

Ahora, cada vez que use estas propiedades de su modelo para mostrar una fecha, estas se presentarán de manera diferente, solo la fecha sin la hora, por ejemplo:

$post = Post::find(1); echo $post->created_at; // only Y-m-d formatted date will be displayed

Por lo tanto, no es necesario cambiar el tipo original en la base de datos. para cambiar el type en su base de datos, debe cambiarlo a Date desde la Timestamp de Timestamp y debe hacerlo desde su migración (si está usando) o directamente a su base de datos si no está utilizando la migración. El método timestamps() agrega estos campos (usando Migración) y para cambiar estos campos durante la migración, debe eliminar el método timestamps() y usar date() lugar, por ejemplo:

$table->date(''created_at''); $table->date(''updated_at'');


Si alguien está buscando una solución simple en Laravel 5.3:

  1. Deje que las timestamps() predeterminadas timestamps() se guarden como están, por ejemplo, ''2016-11-14 12:19:49''
  2. En sus vistas, formatee el campo de la siguiente manera (o según sea necesario):

    date(''F d, Y'', strtotime($list->created_at))

Me funcionó muy bien.


{{ $post->created_at }}

volverá ''2014-06-26 04:07:31''

La solucion es

{{ $post->created_at->format(''Y-m-d'') }}