Я новичок в laravel. Я работаю над проектом с большим количеством значений даты и времени, которые будут отображаться в пользовательском интерфейсе. В Code Igniter я использую, чтобы создать функцию, как показано ниже, поместить во вспомогательный каталог и сделать доступным в моем приложении.

function datetime_to_text($datetime){
    return date('j F Y, g:i a', strtotime($datetime));
}

Как я могу сделать такую ​​функцию доступной глобально в laravel 5 (возможность доступа как в моих представлениях, так и в контроллерах)

1
Fokwa Best 17 Окт 2015 в 01:20

2 ответа

Лучший ответ

Дата и время в Laravel преобразуются в объекты Carbon.

Carbon - это замечательная библиотека.

По умолчанию created_at, updated_at и deleted_at автоматически конвертируются для вас. Если у вас есть другие столбцы DATETIME в вашей таблице, вам просто нужно добавить их в массив $dates в вашей модели Eloquent:

class User {
    protected $dates = ['logged_in_at'];
}

http://laravel.com/docs/5.1/eloquent-mutators#date-mutators

Теперь, когда вы выводите эхо $object->created_at, он вызывает метод Carbon __toString(). Вы можете установить формат по умолчанию с помощью:

Carbon::setToStringFormat('j F Y, g:i a');

Или вы можете легко отформатировать вещи с помощью

echo $object->created_at->format('j F Y, g:i a');

http://carbon.nesbot.com/docs/#api-formatting

2
andrewtweber 17 Окт 2015 в 01:40

Это может быть полезно для экспертов CodeIgniter:

Вы можете создать файл в app/Helpers/ (создав каталог Helpers)

Например: app/Helpers/ HelperClass.php

<?php
namespace App\Helpers;

use Carbon\Carbon;

class HelperClass{

    public static function updatedOn($updated_at)
    {
        return 'Last updated '. $updated_at->diffForHumans();
    }
}

Теперь вам нужно добавить этот HelperClass в config/app.php

'aliases' => [
   ...,
   'HelperClass' => 'App\Libraries\HelperClass'
]

Теперь просто вызовите свою страницу просмотра:

<div class="col-md-12">
   {!! HelperClass::updatedOn($data->updated_at) !!}
</div>

Вывод вроде: Last updated 5 minutes ago.

-1
Anowar Hossain 17 Окт 2015 в 08:02