2016-06-13 55 views
2

來自Rails活動記錄我想知道我怎樣才能真正獲取今天創建的記錄。獲得Ecto Phoenix今天創建的記錄的最佳途徑?

在Rails中,我們可以做這樣的

User.where(created_at:Date.today.beginning_of_day..Date.today.end_of_day) 

或多少簡潔

scope :created_today, ->(date = Date.today) { where(created_at: date..date.end_of_day) } 

User.created_today 

這將是實現與外生同樣的事情,最好的方法?

+0

什麼時區你想在計算「今天」? UTC,當前系統的默認值,還是特定的? – Dogbert

+0

當前系統的默認 –

回答

9

最好的辦法是使用Timex庫。

使用這個庫,你可以做這樣的事情:

date = DateTime.today |> Timex.datetime 

query = from m in Model, where: m.inserted_at >= ^Timex.beginning_of_day(date), where: m.inserted_at <= ^Timex.end_of_day(date) 

Repo.all(query) 
+0

要在這種情況下對那些希望處理給定時區並且您的日期時間列以UTC存儲的應用程序進行擴展,有一種方法是這樣的: date = date |> Timex.Timezone.convert (「America/Chicago」) query = from Model in, 其中:m.inserted_at> =^Timex.Timezone.convert( Timex.beginning_of_day(date),「UTC」), 其中:m.inserted_at < =^Timex.Timezone.convert( Timex.end_of_day(date),「UTC」) – zgohr