php - 比较时间时的 Laravel 问题 - 日期格式

标签 php mysql laravel where-clause php-carbon

我有 Maxoffer 模型:

protected $dates = [
        'start'
    ];

    public function setStartAttribute($date){
        $this->attributes['start']= Carbon::createFromFormat('m/d/Y h:i a', $date);
    }
    public function getStartAttribute($date){
        return (new Carbon($date))->toRfc2822String();
    }

在我的数据库中 start 以以下格式存储:2016-02-02 00:00:00 enter image description here

现在,当我尝试运行 WHERE 查询时:

$maxoffer =  Maxoffer::where('article_id', $request->input('article_id'))
                    ->where('start', $request->input('start'))
                    ->first();
dd($maxoffer);

Input(start) 的格式为:2016-02-02 12:00 am 我也尝试以这种格式制作它:2016-02-02 00:00:00 但还是不要工作所以 dd 给我结果 null 我遇到了问题,因为我不知道如何比较开始和输入(开始)。如何使它们具有相同的格式...

我也不能改变:

public function getStartAttribute($date){
            return (new Carbon($date))->toRfc2822String();
        }

因为我需要这种格式的其他东西。

那么如何使这成为可能呢?

最佳答案

尝试下面将字符串转换为 Carbon 时间,然后 Eloquent 可以比较 DB 中的时间

->where('start', Carbon::parse($request->input('start')))

关于php - 比较时间时的 Laravel 问题 - 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385191/

相关文章:

php - 从 python 调用 php 脚本(子进程)

php - 在mysql中不区分大小写查询

mysql - 如何在 PHPMyAdmin 中运行大型 SQL 文件

java - 无法更新/替换 MySql 中的多个存储图像

php - 如何仅在 Laravel 中出现日期时才验证日期

laravel - 带有 vue 2 组件的 vue 路由器不适用于 laravel 5.8

php - 在 MySQL 中查询这个的最有效方法

php - Symfony 2 服务器部署 fatal error : It tries to open localhost file

laravel - 如何从一个地方访问不同Docker容器中的脚本?

php - MySQL 查询问题 - 连接和分组