Laravel显示我的数据库中的不同日期

时间:2017-02-18 11:48:58

标签: php mysql laravel date laravel-5.3

我的项目有问题。当我在我的数据库中存储值时,它完全正常。但是,当我想显示它的值时,它会给我一个未存储在我的数据库中的未定义日期。 Please See the Image

此处在我的数据库中,created_at字段值为2017-02-18 16:23:37。但是当我想在我的视图页面中显示它时,它给了我这个

It shows me this 它给了我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>&nbsp;
        <span class="label label-danger"><i class="fa fa-trash"></i></span>
    </td>
</tr>
@endforeach

3 个答案:

答案 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',