Laravel将数据库中的字符串日期与碳日期进行比较

时间:2017-03-25 21:37:27

标签: php laravel datetime php-carbon

我在数据库中将日期存储为VARCHAR时犯了一个错误,这里看起来像是 02/12/2018 ,我创建了一个使用碳来获取当前日期的变量 +14天

$current_date_plus_14 = Carbon::now() -> addDay(14) -> format('d/m/Y');

问题

我正在尝试比较数据库中的这个日期 02/12/2018 ,并将其作为VARCHAR存储到我使用Carbon生成的日期 09/04/2017

雄辩代码

$gquery = Client::where('required_date', '>=', $current_date_plus_14) -> get();

我得到了什么

它没有得到任何结果,因为它仅比较 required_date 中的日期和碳日期中的日期。

虽然它应该返回值,因为存在超过1年的差异?

2 个答案:

答案 0 :(得分:3)

尝试使用此函数将日期转换为String(可以使用varchar)转换为实际日期

private function convertDateString($date)
{
    if (is_string($date)) {
        $date = Carbon::parse($date,new DateTimeZone('YOUR_DATE_TIME_ZONE'));
    }

    return $date;
}

答案 1 :(得分:0)

即使您的字段是VARCHAR而不是DATETIMEDATE,您仍然可以通过将属性名称添加到{{1}来将其标记为您的Eloquent模型中的日期}。您还必须更改自己的模型$dates,因为您的格式为非$dateFormat