簡體   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