laravel迁移中的时间格式?

新手上路,请多包涵

我想要一个输入,您可以在其中输入欧盟格式的时间,例如 12:00 或 21:34。 (hh:mm) 我该怎么做?

 Schema::create('posts', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->string('arena');
    $table->date("h,i"('beginn'));
    $table->timestamps();
});

这就是我所拥有的,但它显然是错误的。

原文由 Jonas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 477
2 个回答

在 laravel 5.6 中,你有这个新功能,你可以投射你的时间戳,所以你的迁移应该是这样的

Schema::create('posts', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->string('arena');
    $table->timestamp("begin");
    $table->timestamps();
});

在您的 Post 模型中,您可以简单地执行以下操作:

 protected $casts = [
    'begin' => 'date:hh:mm'
];

编辑

如果你不使用 laravel 5.6,你可以使用 Accessors & Mutators 来轻松地操作数据库设置上的数据或从数据库中获取数据,这样你就可以做这样的事情

public function getBeginAttribute($date)
{
    return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('hh:mm');
}

每次你在你的 blade 或者像这样的地方回显它 {{ $post->begin }} 它会自动为你改变格式。

希望有所帮助。

原文由 AH.Pooladvand 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 $table->time('field_name');

 Schema::create('posts', function (Blueprint $table) {
   $table->increments('id');
   $table->string('title');
   $table->string('arena');
   $table->time("begin");
   $table->timestamps();
});

原文由 Khem Raj Regmi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏