Laravel 4 Eloquent - 时间戳超过3年

时间:2015-10-07 09:13:31

标签: php laravel-4

我有一个名为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。

感谢。

2 个答案:

答案 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)

您还可以使用DateTimeDateTimeInterval类:

$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');