如何创建函数并使其全局可用于在 laravel 5 中格式化日期时间

How to create a function and make it globally available for formatting datetime in laravel 5

我是 laravel 的新手。我正在处理一个项目,其中包含许多将显示在 UI 上的日期时间值。在 Code Igniter 中,我用来创建如下所示的函数并将其放入帮助程序目录并在我的应用程序中可用。

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

如何在 laravel 5 中全局提供这样的功能(能够在我的视图和控制器中访问)

Laravel 中的日期时间被转换为 Carbon 个对象。

Carbon 是一个很棒的 库。

默认情况下,created_atupdated_atdeleted_at 会自动为您转换。如果您的 table 中还有其他 DATETIME 列,您只需将它们添加到 Eloquent 模型中的 $dates 数组:

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

可能对 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();
    }
}

现在您必须在 config/app.php

中添加此 HelperClass
'aliases' => [
   ...,
   'HelperClass' => 'App\Libraries\HelperClass'
]

现在只需在您的视图页面中调用:

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

输出如下:Last updated 5 minutes ago.