Ecto inserted_at,如何只获取日期的一部分?

Ecto inserted_at, how to get only part of the date?

我开始学习 Elixir - Phoenix,来自 Rails,我很喜欢它。 我对从 Ecto 获得的日期有疑问:我只需要显示自动生成的日期 inserted_at。我也尝试使用 Timex 和 timex_ecto 插件来实现这一点,但现在运气不好。

您可以对 Ecto.DateTime.to_erl/1:

的结果进行模式匹配
iex(4)> {{_, _, day}, _} = Ecto.DateTime.to_erl(date) 
{{2016, 1, 5}, {16, 49, 19}}

iex(5)> day
5

如果您想使用 timex,一旦您得到 erlang 日期时间格式 ({{y, m, d}, {h, m, s}}) 的结果,您就可以使用 Timex.Date.from/1

我通常使用日历依赖(添加到混合文件)然后 给定数据库中的日期,例如 date_from_db="2016-01-08T00:14:49" 您可以执行以下操作:

{:ok, date, _} =  date_from_db |> Calendar.NaiveDateTime.Parse.iso8601
date.day