Laravel 将数据库中的字符串日期与碳日期进行比较
Laravel compare string date in database with carbon date
我在数据库中将日期存储为 VARCHAR 时犯了一个错误,这里看起来像 02/12/2018 我已经使用 carbon 创建了一个变量来获取当前日期 +14 天.
$current_date_plus_14 = Carbon::now() -> addDay(14) -> format('d/m/Y');
问题是
我正在尝试将数据库中存储为 VARCHAR 的日期 02/12/2018 与我使用 Carbon 生成的日期 [=31] 进行比较=]2017/09/04.
Eloquent代码
$gquery = Client::where('required_date', '>=', $current_date_plus_14) -> get();
我得到的
它没有得到任何结果,因为它只比较 required_date 中的日期和 碳日期[=40 中的日期=].
虽然它应该 return 值,因为存在超过 1 年的差异?
试试这个将日期作为字符串(可以与 varchar 一起使用)转换为实际日期的函数
private function convertDateString($date)
{
if (is_string($date)) {
$date = Carbon::parse($date,new DateTimeZone('YOUR_DATE_TIME_ZONE'));
}
return $date;
}
即使您的字段是 VARCHAR
而不是 DATETIME
或 DATE
,您仍然可以通过添加属性将其标记为 Eloquent 模型中的日期名称为 $dates
。您还必须更改模型的 $dateFormat
,因为您使用的是非 Y-m-d H:i:s
格式。
我在数据库中将日期存储为 VARCHAR 时犯了一个错误,这里看起来像 02/12/2018 我已经使用 carbon 创建了一个变量来获取当前日期 +14 天.
$current_date_plus_14 = Carbon::now() -> addDay(14) -> format('d/m/Y');
问题是
我正在尝试将数据库中存储为 VARCHAR 的日期 02/12/2018 与我使用 Carbon 生成的日期 [=31] 进行比较=]2017/09/04.
Eloquent代码
$gquery = Client::where('required_date', '>=', $current_date_plus_14) -> get();
我得到的
它没有得到任何结果,因为它只比较 required_date 中的日期和 碳日期[=40 中的日期=].
虽然它应该 return 值,因为存在超过 1 年的差异?
试试这个将日期作为字符串(可以与 varchar 一起使用)转换为实际日期的函数
private function convertDateString($date)
{
if (is_string($date)) {
$date = Carbon::parse($date,new DateTimeZone('YOUR_DATE_TIME_ZONE'));
}
return $date;
}
即使您的字段是 VARCHAR
而不是 DATETIME
或 DATE
,您仍然可以通过添加属性将其标记为 Eloquent 模型中的日期名称为 $dates
。您还必须更改模型的 $dateFormat
,因为您使用的是非 Y-m-d H:i:s
格式。