在Laravel中将时间戳转换为日期?

Jac*_*ack 5 laravel eloquent laravel-4

如何(d-m-Y H:i)使用all()方法从数据库返回时间戳转换为日期的所有行?

它不是created_atupdated_at列,它的自定义属性,birthday如果你愿意,可以调用它.

zwa*_*cky 8

created_at正在首先解析时间戳列.该ü简直是时间戳格式.你可以返回自己的格式.对于其他格式,请参阅日期文档.

编辑:如我的评论所述,getDateFormat()是两种方式(插入,选择).你最好的选择是在模型中使用格式.例:

public function getMyBirthdayAttribute()
{
    return $this->my_birthday->format('d.m.Y');
}
Run Code Online (Sandbox Code Playgroud)

使用$model->my_birthday调用属性.

// controller
$posts = Post::all();

// within sometemplate.blade.php
@foreach($posts as $post)
    my formatted date: {{ $post->my_birthday }}
@endforeach
Run Code Online (Sandbox Code Playgroud)


T2t*_*heC 7

使用Laravel IMHO管理日期的更好方法是使用getDates构建到Laravel中的访问器.

您需要做的就是在模型上设置一个方法.

public function getDates()
{
    return [
        'my_birthday',
        'created_at',
        'updated_at',
    ];
}
Run Code Online (Sandbox Code Playgroud)

这将返回一个Carbon对象.碳在操纵日期方面非常棒.

这是Laravel默认为created_at和updated_at所做的事情.

然后你可以做以下事情:

$my_birthday->diffForHumans()  // 2 Days ago
$my_birthday->format('d.m.Y')  // 20.02.1979
Run Code Online (Sandbox Code Playgroud)

这里有很多帮手.查看Carbon文档:https://github.com/briannesbitt/Carbon

绝对值得学习.初学者可能不容易理解.但是,我建议你看一看,然后绕过它.它会改变你的生活 - 日期可能是一种痛苦!


The*_*pha 3

在这种情况下,您需要转换 中的日期query,如果mysql用作数据库,那么您可以使用如下原始查询:

// Assumed my_birthday is like 1255033470
$raw = DB::raw("date_format(from_unixtime(my_birthday),'%b %d, %Y %l:%i %p') as dob");
$result = Model::get(array('id', 'username', $raw));
Run Code Online (Sandbox Code Playgroud)

您可以将其写在一行中:

$result = Model::get(array('id', 'username', DB::raw("...")));
Run Code Online (Sandbox Code Playgroud)