Laravel中的日期格式

时间:2018-11-17 19:58:06

标签: php laravel

我有一个输入3个字段(firstnamelastnamedate)的表单,我的问题是日期格式。

这里是一个例子。我输入了firstnamelastnamedate

Preview of the form

date的格式正确=> 01-02-1980的格式。

但是在我的PhpMyAdmin中,我== 318211200是dateS

Table in phpMyAdmin

在我的概述(面板)中,我还有318211200但没有01-02-1980

Overview panel

在我的 AdminController 中,我知道了

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Student;

class AdminController extends Controller
{
    public function index(){
      $students = Student::oldest()->paginate(5);
      return view('admin.index', compact('students'))
             ->with('i', (request()->input('page',1)-1)*5);
    }

    public function store(Request $request)
    {

      $request->validate([
              'firstname' => 'required',
              'lastname' => 'required',
              'date' => 'required'
      ]);
      Student::create($request->all());
      return redirect()->route('admin.index')
                  ->with('success', 'save');
    }

}

对于我的 index.blade

<thead>
                <tr>
                  <th>Firstname</th>
                  <th>Lastname</th>
                  <th>Date</th>
                </tr>
                </thead>
                @foreach($students as $student)
                @php
                  $date=date('d-m-Y', $student['date']);
                @endphp
                <tr>
                   <td> {{$student->firstname}}</td>
                   <td> {{$student->lastname}} </td>
                   <td> {{$student->date}} </td>

请问您有个主意吗? 我先谢谢你

4 个答案:

答案 0 :(得分:0)

数据库表上的日期列必须为datatime数据类型。因此,这两个选项之一都可以:

选项1: 在您的迁移文件中,将日期列的代码更改为

$table->dateTime('date');

然后运行artisan命令以回滚并更新数据库

php artisan migrate:refresh

然后尝试从表单提交数据。

选项2:

从phpMyAdmin手动更改表上date字段的数据类型。

在从表单提交数据之前,您可能必须截断数据库表。

答案 1 :(得分:0)

可能是因为您使用了“时间”列类型。尝试将列定义为“日期”。在您的迁移文件中,您应该像

$table->date('date');

答案 2 :(得分:0)

好像您的date列的数据类型可能不正确。考虑使用datetime

如果您愿意,可以通过以下方式更改表格上的列:

ALTER TABLE students MODIFY date datetime;

答案 3 :(得分:0)

由于您尚未发布迁移,因此我将不得不猜测您尚未在数据库中定义日期列,因此未定义将日期作为输入。因此,我建议您使用以下代码更新此特定表的迁移,并刷新迁移

$table->date('date');

现在,您有一个启用日期的列以输入正确的值。在此之后,我建议您使用Carbon来由 Carbon 管理日期格式和其他令人惊奇的东西 如果您是laravel的新手,check this video会给您带来基本的了解,虽然它有点老,但是您会明白的。

完成此操作后,在check this page处可以使用所有开箱即用的选项来操作日期。有任何问题,请告诉我

快乐的编码!