我有一个有日期的记录列表(如11/5/2013
,这是一个MDY表单),但日期是VARCHAR
个字段。
我想选择过去30天内的所有记录,但不知道如何将它们转换为日期格式,因为我在日期字段中得到NULL。
我正在使用Laravel和Eloquent ORM,我该如何做到这一点?
答案 0 :(得分:17)
您的模型中需要一个访问者。
假设您的表格中有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();
我没有测试过代码,但应该可以使用。 :)