如何使用(d-m-Y H:i)
方法从数据库返回时间戳转换为日期all()
的所有行?
它不是created_at
或updated_at
列,它是自定义属性,如果您愿意,请将其称为birthday
。
答案 0 :(得分:8)
首先解析像created_at
这样的时间戳列。 U 只是时间戳格式。你可以返回自己的格式。对于其他格式,请参阅date docs。
编辑:如我的评论中所述,getDateFormat()
适用于两种方式(插入,选择)。你最好的选择是在模型中使用格式。例如:
public function getMyBirthdayAttribute()
{
return $this->my_birthday->format('d.m.Y');
}
使用$model->my_birthday
来调用该属性。
// controller
$posts = Post::all();
// within sometemplate.blade.php
@foreach($posts as $post)
my formatted date: {{ $post->my_birthday }}
@endforeach
答案 1 :(得分:7)
使用Laravel IMHO管理日期的更好方法是使用构建到Laravel中的getDates
访问器。
您需要做的就是在模型上设置一个方法。
public function getDates()
{
return [
'my_birthday',
'created_at',
'updated_at',
];
}
这将返回Carbon
个对象。碳操纵日期非常棒。
Laravel默认使用created_at和updated_at。
然后您可以执行以下操作:
$my_birthday->diffForHumans() // 2 Days ago
$my_birthday->format('d.m.Y') // 20.02.1979
这里有大量帮手。查看Carbon文档:https://github.com/briannesbitt/Carbon
绝对值得学习。初学者可能不容易理解。但是,我建议你看一看,然后绕过它。它会改变你的生活 - 日期可能是一种痛苦!
答案 2 :(得分:2)
在这种情况下,您需要转换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));
您可以在一行内写下:
$result = Model::get(array('id', 'username', DB::raw("...")));
答案 3 :(得分:1)
日期属于时间戳类型,其格式如下:“ YYYY-MM-DD HH:MM:SS”或“ 2008-10-05 21:34:02”。
$res = mysql_query("SELECT date FROM times;");
while ( $row = mysql_fetch_array($res) ) {
echo $row['date'];
}
PHP strtotime函数将MySQL timestamp
解析为Unix timestamp
,可将其用于PHP date函数中的进一步解析或格式化。
以下是一些其他可能实际使用的示例日期输出格式:
echo date("F j, Y g:i a", strtotime($row["date"])); // October 5, 2008 9:34 pm
echo date("m.d.y", strtotime($row["date"])); // 10.05.08
echo date("j, n, Y", strtotime($row["date"])); // 5, 10, 2008
echo date("Ymd", strtotime($row["date"])); // 20081005
echo date('\i\t \i\s \t\h\e jS \d\a\y.', strtotime($row["date"])); // It is the 5th day.
echo date("D M j G:i:s T Y", strtotime($row["date"])); // Sun Oct 5 21:34:02 PST 2008
答案 4 :(得分:0)
只需将其放在您的代码上即可 $ post取决于你创建的内容
$post ->created_at->format('d.m.Y')