Laravel where date / Carbon 相關操作

閱讀時間約 4 分鐘
//找出日期年份是2021年的
->whereYear('datetime', 2021)

//找出日期月份是7月的
->whereMonth('datetime', 7)

//找出小於等於一個月前的 (找出小於等於2021年6月的)
->whereDate('datetime', '<=', (new Carbon("2021-7"))->subMonth(1))

需特別注意,subMonth(x)會改變原來的值,比如以下範例,假如$today是2021/09/24,減掉6個月後$today的值會被更動:
$today = Carbon::today();
$today->subMonth(6) //這時$today=2021/03/24
如果後面繼續$today->subMonth(x),$today會越來越小,這種狀況可以用->toImmutable()來解決,這樣$today就不會變了:
->whereDate('create_datetime', '>=', $today->toImmutable()->subMonth(6))
->whereDate('create_datetime', '>=', $today->toImmutable()->subMonth(1))

//column between two date
->whereBetween('data_create_datetime', 
[(new Carbon($start_date))->startOfDay(),
(new Carbon($end_date))->endOfDay()]);
$start_date = 2021/10/13
$end_date = 2021/10/20
(new Carbon($start_date))->startOfDay()   // => 2021/10/13 00:00:00
(new Carbon($end_date))->endOfDay()      // => 2021/10/20 23:59:59

//date between two columns
->whereDate('start_datetime', '<=', $date)->whereDate('end_datetime', '>=', $date)

//日期format轉換
Carbon::parse("2021/11/28")->format('Y-m-d');   //2021-11-28
//減1小時
Carbon::parse("2021-12-03 16:00:00")->subHour(1);  //2021-12-03 15:00:00

//現在時間與指定時間差了幾分鐘
$diff_in_minutes = (Carbon::now())->diffInMinutes('09:00:00', false);
帶入false表示回傳的相減分差會有正負數,如果帶true,則都會是正數。
為什麼會看到廣告
21會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
E 本筆記參考: 1. https://stackoverflow.com/questions/40529355/laravel-eloquent-group-by-month-year
mysql中假設groupBy('customer_id') MIN('giveup_date'), 如果欄位中有NULL, 則預設會被忽略。 以下圖為例, 則會拿到2021-09-24 16:42:20。 實務上可能會遇到不想忽略NULL的情況, 解決方法如下: ->select(    DB
Create React App 提供了快速建立React App環境的方法: 1. 安裝node.js 2. 建立React project: $ npx create-react-app my-app 3. 啟動app $ cd my-app $ npm start npm start之後即打
上篇介紹的promise chain的寫法,是已經比原本好維護了沒錯,但是可讀性似乎還是有點不足,其實還可以改成用async/await的寫法,如下: E 其中,async是非同步的意思,等於是把getData()這個function定義為非同步,因此從console可以看到,test是最先被pri
在PHP 7 版本之前,?: 這種寫法稱為,「Ternary Operator」: $data = isset($data) ? $data : 'hello'; PHP 7 之後,??這種寫法稱為「Null Coalescing Operator」: $data = $data ?? 'hell
1. $ C:\wamp64\bin\mariadb\mariadb10.6.3\bin\mysql.exe -u username -p --default-character-set=utf8 2. 選擇db: $ use dbname; 3. 匯入資料: $ source c:\xxx.sq
E 本筆記參考: 1. https://stackoverflow.com/questions/40529355/laravel-eloquent-group-by-month-year
mysql中假設groupBy('customer_id') MIN('giveup_date'), 如果欄位中有NULL, 則預設會被忽略。 以下圖為例, 則會拿到2021-09-24 16:42:20。 實務上可能會遇到不想忽略NULL的情況, 解決方法如下: ->select(    DB
Create React App 提供了快速建立React App環境的方法: 1. 安裝node.js 2. 建立React project: $ npx create-react-app my-app 3. 啟動app $ cd my-app $ npm start npm start之後即打
上篇介紹的promise chain的寫法,是已經比原本好維護了沒錯,但是可讀性似乎還是有點不足,其實還可以改成用async/await的寫法,如下: E 其中,async是非同步的意思,等於是把getData()這個function定義為非同步,因此從console可以看到,test是最先被pri
在PHP 7 版本之前,?: 這種寫法稱為,「Ternary Operator」: $data = isset($data) ? $data : 'hello'; PHP 7 之後,??這種寫法稱為「Null Coalescing Operator」: $data = $data ?? 'hell
1. $ C:\wamp64\bin\mariadb\mariadb10.6.3\bin\mysql.exe -u username -p --default-character-set=utf8 2. 選擇db: $ use dbname; 3. 匯入資料: $ source c:\xxx.sq
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。
Thumbnail
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
Thumbnail
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。
Thumbnail
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
Thumbnail
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。