删除超过60分钟的Elequent记录

时间:2014-06-16 18:29:30

标签: database laravel-4 eloquent

如何删除created_at或updated_at字段超过60分钟的数据库中的所有Eloquent记录? (或示例的任何时间)

编辑:发布的解决方案作为@Alexxus建议的答案

2 个答案:

答案 0 :(得分:3)

Laravel在Carbon日期类中有一个内置版本,可以为您解决所有时区问题。

示例:

$date  = Carbon::now()->subMinutes( 60 );
MyModel::where( 'updated_at', '<=', $date )->delete();

答案 1 :(得分:2)

已解决->使用ceejayoz的链接

  • 制作日期对象并减去时间。
  • 将日期对象转换为字符串以匹配雄辩的格式
  • 比较格式字符串和updated_at

我正在使用以下代码:

$date = new DateTime;
$date->modify('-60 minutes');
$formatted = $date->format('Y-m-d H:i:s');
MyModel::where('updated_at', '<=', $formatted)->delete();

谢谢ceejayoz!