php - 如何检查行早于 2 小时 Carbon

标签 php laravel php-carbon

我正在使用 Laravel 5.0,我正在尝试删除 created_at 早于 3 小时的表中的所有行。

如何使用 Carbon 检查 created_at 的年龄?

$time = Carbon::now()->subHour(3);
$photos = Photos::where('created_at','<=',$time);
if($photos){
echo 'older then 3 hours';
}else
echo 'not older then 3 hours';
}

此代码始终回显“早于 3 小时”,即使我更改了 MySql 表中的'created_at 日期。

我做错了什么?

最佳答案

你有两个问题:

  • 您实际上并没有获取结果 (->get())
  • $photos 是一个始终计算为 true 的 Collection 对象,即使它是一个空集合也是如此。

解决方案

$time = Carbon::now()->subHour(3);
$photos = Photos::where('created_at','<=',$time)->get();
if($photos->count()){
    echo 'older than 3 hours';
} else {
    echo 'not older than 3 hours';
}

关于php - 如何检查行早于 2 小时 Carbon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047212/

相关文章:

laravel - 如何在 Laravel 上使用 carbon 将日期格式从 dd/mm/yyyy 转换为 yyyy-mm-dd

php - laravel中的默认时间戳(created_at和updated_at)保存到数据库时采用什么格式?

php - PHP 中的 CSS 框架生成器

php - XPath 查找具有空值的属性

laravel - Laravel 的总 SUM 输入表单值

php - 检查 Laravel 中的 session 超时

php - 需要检查用户在我的网站 Laravel 5.2 上注册了多长时间

php - 无法将数据从 csv 插入列数未知的 mysql 数据库

php - 关于如何使用 php 和 jQuery 创建测验的提示和建议

laravel - Laravel播种未填写字段