Intereting Posts
Преобразование экспоненциального числа в десятичное число в php PHP gettext и бродячий бег ubuntu используя preg_match для обнаружения персидских (фарси) символов в строке Как совместить строки с двойными кавычками, используя php Вы должны включить расширение openssl для загрузки файлов через https Компиляция php с curl, где установлен curl? API Twitter: не получение электронной почты пользователя – Yii2 Автоматически использовать __LINE__ и __FILE__ относительно функции where Переписывание URL-адресов назад и вперед с помощью mod_rewrite Система комментариев PHP с ответом 1 уровня. Проблема с отображением запроса Как я могу прочитать содержимое каталога на удаленном сервере с помощью PHP? Лучший способ проверить, вернулись ли результаты MySQL в PHP? Цитирование через массив в PHP возвращается из MySQL Query PHP: данные POST скрытых полей Как переопределить существующее количество в корзине?

Как изменить формат по умолчанию на created_at и update_at значение laravel

Я новичок в Ларавеле. Я создаю приложение с laravel. Когда я создаю сообщение, значения «created_at» и «updated_at» выглядят следующим образом:

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

Но я хочу, чтобы эти значения не выглядели так:

 2014-06-26 2014-06-26 

Только дата без времени.

Является ли это возможным ???

Пожалуйста, помогите мне.

Моя модель сообщения:

 <?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'); } } 

Магазин My ​​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('YmdH: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(); } 

Пожалуйста помогите.

В вашей модели Post добавьте два метода доступа, например:

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

Теперь каждый раз, когда вы используете эти свойства из своей модели, чтобы показать дату, они будут представлены по-разному, только дата без времени, например:

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

Поэтому вам не нужно менять исходный тип в базе данных. для изменения type в вашей базе данных вам необходимо изменить его на Date from Timestamp и вам нужно сделать это из своей миграции (если вы вообще используете) или непосредственно в вашу базу данных, если вы не используете миграцию. Метод timestamps() добавляет эти поля (используя Migration) и для изменения этих полей во время миграции вам необходимо удалить метод timestamps() и использовать date() вместо, например:

 $table->date('created_at'); $table->date('updated_at'); 
 {{ $post->created_at }} 

вернется '2014-06-26 04:07:31'

Решение

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

Laravel 4.x и 5.0

Чтобы изменить время в базе данных, используйте: http://laravel.com/docs/4.2/eloquent#timestamps

Предоставление настраиваемого формата временной отметки

Если вы хотите настроить формат временных меток, вы можете переопределить метод getDateFormat в своей модели:

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

Laravel 5.1+

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

Если вам нужно настроить формат временных меток, задайте свойство $ dateFormat в своей модели. Это свойство определяет, как атрибуты даты хранятся в базе данных, а также их формат, когда модель сериализуется в массив или JSON:

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

Если кто-то ищет простое решение в Laravel 5.3:

  1. Пусть отметки времени по умолчанию () сохраняются как есть: '2016-11-14 12:19:49'
  2. В ваших представлениях отформатируйте поле, как показано ниже (или по мере необходимости):

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

Работал для меня очень хорошо.