我有一个名为RegistrationDate的字段,我需要检查时间。
我需要一个可以做的地方克劳斯:
if (time() - strtotime($car->RegistrationDate) > 3*365.25*24*60*60)
over 3 years old
}
所以:
$cars::where('RegistrationDate', '>', '3 years old')->get();
但不知道该怎么做,我的日期保存为时间戳:2009-07-17 00:00:00。
感谢。
答案 0 :(得分:1)
使用碳库。我认为它已经被laravel框架加载了。但如果没有,你可以通过作曲家加载。 https://github.com/briannesbitt/Carbon
$cars::where('RegistrationDate', '>', Carbon\Carbon::now()->subYears(3))->get();
假设$cars
是您Car
模型的雄辩对象;
此外,与问题无关......但您的表命名约定有点奇怪。
$cars = Car::where('registration_date', '>', Carbon\Carbon::now()->subYears(3))->get();
答案 1 :(得分:0)
您还可以使用DateTime和DateTimeInterval类:
$currentDate = new DateTime(); // get current date time
$currentDate->sub(new DateInterval('P3Y')); // substract 3 years from current date
之后,您可以在代码中使用$currentDate
,如:
$cars::where('RegistrationDate', '>', $currentDate)->get();
您还可以将$currentDate
转换为您需要的sql datetime字符串:
$currentDateStr = $currentDate->format('Y-m-d H:i:s');