【问题标题】:How to check current date record in laravel?如何在 laravel 中查看当前日期记录?
【发布时间】:2020-01-07 04:17:11
【问题描述】:

我正在尝试仅检查今天或当前日期的 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,但是我在迪拜,现在是下午 1:33。

有人可以指导我吗?

非常感谢。

【问题讨论】:

  • 09:31 是 UTC 时间。检查你会得到的UTC当前时间,默认时区是laravel中的UTC。
  • 你应该使用亚洲/迪拜作为时区

标签: php laravel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    前往

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

    。 那么

    php artisan config:cache

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 您最好在数据库中使用 UTC 并在应用程序中进行时区转换。
      • 如果您的应用程序在不同时区的多个位置启动,那么您可以根据该特定时区进行应用程序配置。它将帮助您管理日期和时间计算。
      • 是的,最好在应用程序而不是数据库中执行此操作。见stackoverflow.com/questions/11537106/…blog.abodit.com/2010/02/…
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-16
        相关资源
        最近更新 更多