jquery - 使用 Laravel Carbon 将日期保存为 MySQL 格式

标签 jquery mysql laravel date php-carbon

在使用 Carbon 保存到数据库之前,尝试将 JQuery Datepicker 日期格式“dd-mm-yy”转换为 MySQL 日期格式“YYYY-MM-DD”。

我在插入数据之前尝试过在存储方法中使用Carbon,但仍然没有成功,它将日期保存为“0000-00-00”。

HTML:

<input type="text" name="reg_date" id="regdate" value="{{ old('reg_date', date('d/m/Y')) }}">

JQuery:

<script>
  $(function(){
    $("#regdate").datepicker({
    dateFormat: 'dd-mm-yy',
    changeMonth: true,
    changeYear: true,
    showAnim: 'slideDown'
    });
});
</script>

Controller :

use Carbon\Carbon;

 public function store(Request $request)
    {
        $data = $request->validate([
            'reg_date' => 'required',
            'first_name' => 'required|alpha',
            'last_name' => 'required|alpha',
        ]);

        $object = new ModelName();
        $regdate = 'reg_date';
        $object->date = \Carbon::createFromFormat('d-m-Y', $regdate)->format('Y-m-d');

        ModelName::create($data); // create() method to insert data to database.
    }

日期应以“YYYY-MM-DD”格式保存到数据库中。

PS: Data type is 'DATE'.

最佳答案

以今天的日期为例,JQuery Datepicker 格式为 dd-mm-yy在我看来,它会显示为 10-08-19 .

但是在您的 Carbon 声明中,您使用的是 d-m-Y ,预计年份为 4 位数 10-08-2019 .

尝试将输入格式更改为 d-m-y来说明 2 位数的年份。

$object->date = \Carbon::createFromFormat('d-m-y', $regdate)->format('Y-m-d');

有关 PHP 日期格式的更多信息:
https://www.php.net/manual/en/function.date.php

编辑:其他问题,以及根据评论所做的更改。

public function store(Request $request)
{
    $request->validate([
        'reg_date' => 'required',
    ]);

    // get the entire request as an array
    $data = $request->all();

    // correct the date format
    $data['reg_date'] = \Carbon::createFromFormat('d-m-y', $data['reg_date'])->format('Y-m-d');

    // create a new model
    $model = ModelName::create($data);
}

编辑2:通过键处理多个日期。

$keys = ['reg_date','sell_date','purchase_date'];

foreach ($keys as $key) {
    $data[$key] = \Carbon::createFromFormat('d-m-y', $data[$key])->format('Y-m-d');
}

关于jquery - 使用 Laravel Carbon 将日期保存为 MySQL 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444535/

相关文章:

javascript - 如何添加切换器 Jquery?

php - 异步将数据放入动态生成的 div

laravel - Laravel Blade 的 `@yield` 和 `@include` 之间有什么区别?

php - Laravel where::model,如何添加多语句

asp.net - jquery getJson 未将任何值传递给 Controller

javascript - "#button_1"不受 .click() 或 .hover() 的影响

php - 如何在用户未登录时阻止 HTML 表单提交,但在用户登录时允许提交?

php - 使用第一个查询中的变量从第二个查询中获取结果时出错

mysql - 需要使用两个不同的where子句返回两组数据

php - 包含在常量中的 Laravel 查询模型