Ecto inserted_at,如何获得部分日期?

时间:2016-01-07 17:00:43

标签: elixir phoenix-framework

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

2 个答案:

答案 0 :(得分:2)

您可以对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

答案 1 :(得分:1)

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

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