繁体   English   中英

如何在Laravel中检查当前日期记录?

[英]How to check current date record in laravel?

我正在尝试仅检查今天或当前日期的game_id ,为此,我正在尝试遵循脚本

$todayExist = Training::whereRaw("Date(created_at)=Curdate() and game_id=$game_id")->get();
        if($todayExist->count() > 0 ){
            $error = 1;
            $result = false;
        } 

上面的查询输出是

select * from `games_training` where Date(created_at)=Curdate() and game_id=6

但是对于game_id=6存在重复的条目,因为它是3小时前(迪拜时间)生成的。

那么有人可以指导我怎么办? 查询错误还是因为服务器时区而发生。

我只是插入记录,在服务器数据库中显示的是09:31:57 ,这意味着是09:31:57 AM,但是我在迪拜,现在这里是1:33 PM。

有人可以请我指导一下。

非常感谢。

配置-> app.php并更改'timezone'=>'Asia / Dubai'

然后

php artisan config:cache

您可以在“ config-> app.php”中找到时区配置,只需将'timezone' => 'UTC', to 'timezone' => 'Asia/Dubai',更改'timezone' => 'UTC', to 'timezone' => 'Asia/Dubai',然后重新启动XAMPP。

当前日期对您来说意味着什么? 因为您具有mysql服务器时区,lavarel时区设置和计算机的时区设置...当您编写时:Date(created_at)= Curdate(),Curdate()检查mysql服务器的时区。 那么您要查找的“当前日期”是什么? 请记住,世界上每个用户都有自己的“当前本地日期”,而存储在您的mysql数据库中的日期只会是一个固定日期(最好使用UTC以获得更高的可靠性...)

Laravel 5.6+用户,您可以做

$posts = Post::whereDate('created_at', Carbon::today())->get();

除了now()today() ,您还可以使用yesterday()和明天(),然后使用以下代码:

startOfDay()/endOfDay()
startOfWeek()/endOfWeek()
startOfMonth()/endOfMonth()
startOfYear()/endOfYear()
startOfDecade()/endOfDecade()
startOfCentury()/endOfCentury()

要么

使用查询生成器,使用Mysql默认的CURDATE函数获取当天的所有记录。

 $records = DB::table('users')->select(DB::raw('*'))
                  ->whereRaw('Date(created_at) = CURDATE()')->get();
    dd($record);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM