如何在Laravel中格式化输出MySQL日期?

时间:2015-06-03 11:20:30

标签: php mysql date laravel time

我在表单中有几个字段,其中包含日期和时间('dd-mm-yyyy', 'hh:mm')

当我想保存表单时,我使用自己的函数将其转换为MySQL ('yyyy-mm-dd', 'H:i:s'),通过date()将其添加到Laravel Model类中的save()。

但是在哪里可以放置相同的函数来格式化输出(SELECT查询)? Laravel中没有单一功能可用于数据输出。 find()findOrNew()findOrFail(),... - 有不同的类,因此我无法使用单个位置添加格式化功能。

是否有适当的位置来放置格式化功能?

3 个答案:

答案 0 :(得分:1)

您可以使用Laravel Date Mutator。只需将以下方法放入您的Eloquent模型中:

假设您的数据库中有一个使用expireDate列的表用户。然后在模型中定义此字段。

class User extends Eloquent {

    protected $dates = ['expireDate'];

}

使用您的数据库列名替换FirstName。 然后你可以使用laravel Carbon类来格式化你的结果。

$user = User::find(1);
return $user->expireDate->format('d-m-Y');

如需更多参考,请阅读http://laravel.com/docs/4.2/eloquent#date-mutators

答案 1 :(得分:0)

只需将其添加到AppServiceProvider@register

即可
Carbon::setToStringFormat('d/m/y'); 

现在你可以回复$model->created_at并正确格式化所有内容。

答案 2 :(得分:0)

在App目录中,创建一个新目录。我们称之为“libraries”, 然后创建一个php文件“CustomFunction.php”或者其他什么,这也必须是一个类,然后将你的函数放在这个类中。

所以你有

class CustomFunction{

    static function dateFormat(){

  }
}
App/libraries /

中的

Then in App/start/global.php

第14行的Iside类加载器,如下所示,添加新文件夹的路径:

ClassLoader::addDirectories(array(

    app_path().'/libraries'

));

然后在您的composer.json文件中添加: “app/libraries”到“autoload”数组。

然后在您的视图中,您可以轻松地执行此操作:

{{ CustomFunction::dateFormat() }}