首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改日期格式,用Laravel 5.8保存到数据库中

更改日期格式,用Laravel 5.8保存到数据库中
EN

Stack Overflow用户
提问于 2019-08-31 17:07:44
回答 2查看 2.6K关注 0票数 1

我是拉勒维尔的新人;

我使用的是数据打包器Jquery,它输出的格式如下:

2010年8月14日至9月

我通过以下代码将其保存在数据库中:

代码语言:javascript
复制
if ($request -> isMethod('post')) {
        $data = $request -> all();
        $course = new Courses;
        $course -> start_date = $data['start_date'];
        $course -> save();
        return redirect('/admin/courses');
    }

但我发现了这个错误:

SQLSTATE22007:无效的日期时间格式: 1292个不正确的日期值:‘14-8月-2019年’,用于第1行的“start_date”列

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-31 17:33:35

MySQL期望日期与2019-08-14一样,并且您正在试图保存14-Aug-2019。所以你得到了错误。您可以通过从前端发送精确的格式化日期或在后端解析它来解决这个问题。

从数据采集器发送Y-m-d

代码语言:javascript
复制
$( "#date" ).datepicker({
   dateFormat: 'yy-mm-dd',
});  

它会像2019-08-14一样发送日期,您可以直接保存它。

如果您想使用像14-Aug-2019这样的格式,那么您必须使用碳解析它,以便将它保存在数据库中。

代码语言:javascript
复制
use Carbon\Carbon;
$date = '14-Aug-2019';
$d = Carbon::parse($date)->format('Y-m-d'); //return date 2019-08-14

start_date转换为模型中的日期。它将帮助您格式化它的任何您想要的。

代码语言:javascript
复制
class Courses extends Model
{
    protected $dates = ['start_date'];
} 
票数 2
EN

Stack Overflow用户

发布于 2019-08-31 17:19:41

希望对你会有帮助

代码语言:javascript
复制
    if ($request -> isMethod('post')) {
        $data = $request -> all();
        $course = new Courses;
        $course -> start_date = STR_TO_DATE($data['start_date'], '%d-%M-%Y');
        $course -> save();
        return redirect('/admin/courses');
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57740072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档