我的项目有问题。当我在我的数据库中存储值时,它完全正常。但是,当我想显示它的值时,它会给我一个未存储在我的数据库中的未定义日期。
此处在我的数据库中,created_at字段值为2017-02-18 16:23:37。但是当我想在我的视图页面中显示它时,它给了我这个
它给了我2017-02-02 09:19:40的价值。我不明白什么是错的。 我只显示created_at字段。请帮帮我
我的控制器是
public function showApplication() {
$dataList = ApplicationModelOL::leftJoin('certificate', 'application.application_certificate_id', 'certificate.certificate_track_id')
->where('application_users_id', Auth::User()->users_track_id)
->get();
return view('frontend.pages.application', compact('dataList'));
}
我的观点是
@foreach($dataList as $data)
<tr>
<td>{{ $data->certificate_name_en }}</td>
@if($data->application_delivery_mode == 195126)
<td>Self</td>
@else
<td>Via Post</td>
@endif
<td class="hidden-phone">{{ $data->created_at }}</td>
<td class="hidden-phone">
<span class="label label label-warning">Pending</span>
</td>
<td class="hidden-phone">
<span class="label label-primary"><i class="fa fa-edit"></i></span>
<span class="label label-danger"><i class="fa fa-trash"></i></span>
</td>
</tr>
@endforeach
答案 0 :(得分:0)
当你的MySQL时区与框架中设置的php时区不同时会发生此问题。 要同步您的时区,您可以使用以下代码:
PHP:
date_default_timezone_set('Asia/Tehran');
MySQL的:
$timeZone = (new DateTime('now', new DateTimeZone('Asia/Tehran')))->format('P');
$pdo->exec("SET time_zone='$timeZone';");
答案 1 :(得分:0)
使用Mysql属性,如果在表上使用连接,则可以获取不同的值,无论是id还是created_at(Laravel)。假设您连接了三个表,则输出将返回三个“ created_at”的最后一列。因此,您只需检查以确保您的联接正确即可。
答案 2 :(得分:0)
您可以在config / app.php中的Laravel中更改时区。
下面的参数可以根据supported timezones ...的喜好更改为任意参数。
'timezone' => 'Europe/Dublin',