php - 日期未使用 laravel 保存到 mySQL 数据库

标签 php mysql laravel date

我有一个 jquery 日期选择器

$(function() {
    var date = new Date();
    var currentMonth = date.getMonth();
    var currentDate = date.getDate();
    var currentYear = date.getFullYear();
    $('.datepicker').datepicker({
    showOn: 'focus',changeMonth: true,
    minDate: new Date(currentYear, currentMonth, currentDate),
    changeYear: true,

});
});

经过一些验证

    $this->validate($request, [
        "date" => 'required|date',
    ]);

以及将日期传递给数据库的一些转换

    $date = $request->input('date');
    $date2 = DateTime::createFromFormat('m/d/Y',$date);
    $date3 = $date2->format("Y-d-m");

如果此时我 dd($date3) 和选定的日期,我会得到这样的结果

"2016-29-09"

很好,mysql 似乎以 y-d-m 格式保存。

现在当我去通过它的时候

    Message::where('id', $messageId)->update([
        'updated_at' => Carbon\Carbon::now(),
        'subject' => 'Status: Price quote delivered.',  
        'quoted' => 1,
        'price' => $request->input('price'),
        'estimated_date'  => $date3,            
    ]);

除日期外,所有内容都会传递到数据库。日期在数据库中停留在 0000-00-00。

帮忙吗?

最佳答案

请注意,您将日期保存为 YEAR-DAY-MONTHDATE 的正确格式为 YEAR-MONTH-DAY

另请注意,$date3 的值为“2016-29-09”,由于月份值无效且范围正确,这将在您的表中插入值“0000-00-00”对于数据类型 DATE,月份是 (1-12)

解决方案:

您需要根据列的数据类型更改日期格式(年-月-日)。

$date3 = $date2->format("Y-m-d"); // something like 2016-09-26

您也可以按照引用: http://dev.mysql.com/doc/refman/5.7/en/datetime.html

关于php - 日期未使用 laravel 保存到 mySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695974/

相关文章:

PHP 检查是否有任何数组值不是字符串或数字?

java - 服务器 : Null java. sql.SQLException 参数索引超出范围(1 > 参数数量,为 0)

php - "latin1"DB 的 Laravel 编码问题

php - Laravel 在迁移中给出数据类型 bit/byte

php - 为什么需要在 createToken 方法中传递一个字符串?

php - 关闭 'accordian' <div> 但强制返回 'top'

php - 如何在代码中使用连接?

php - 快速从文件执行多个查询

Java:在MySQL中高效存储Protobuf对象

php - 使用Laravel 4.2中的Chumper数据表库加入MySQL表