【发布时间】:2013-12-29 05:41:47
【问题描述】:
我有一个包含日期的记录列表(例如 11/5/2013,这是一种 MDY 格式),但日期是 VARCHAR 字段。
我想选择过去 30 天内的所有记录,但不知道如何将它们转换为日期格式,因为我在日期字段中得到 NULL。
我正在使用 Laravel 和 Eloquent ORM,我该如何做到这一点?
【问题讨论】:
我有一个包含日期的记录列表(例如 11/5/2013,这是一种 MDY 格式),但日期是 VARCHAR 字段。
我想选择过去 30 天内的所有记录,但不知道如何将它们转换为日期格式,因为我在日期字段中得到 NULL。
我正在使用 Laravel 和 Eloquent ORM,我该如何做到这一点?
【问题讨论】:
您的模型中需要一个访问器。
假设您的表中有一个dates 字段。
public function getDatesAttribute($value)
{
$this->attributes['dates'] = Carbon::createFromFormat('m/d/Y', $value);
}
上述函数会将日期从字符串转换为 Carbon 对象。 Laravel 默认支持 Carbon。
现在来自你的控制器:
$test = Test::where('dates', '>=', Carbon::now()->subMonth())->get();
我没有测试过代码,但应该可以工作。 :)
【讨论】: