[英]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.