Как отформатировать временную метку Ecto
Я хотел бы использовать в своем шаблоне только день и месяц метки времени inserted_at
что Экто автоматически создает (2017-04-10 16:22:43
) когда используешь:
<%=i.inserted_at%>
На сегодняшний день, каков наилучший способ сделать это?
2 ответа
Решение
Ecto timestamp использовать NaiveDateTime
Вы можете показать это, когда представление в iex выглядит так: ~N[]
,
Вы можете использовать NaiveDateTime, предоставляемый elixir следующим образом:
date = "#{i.inserted_at.year}-#{i.inserted_at.month}-#{i.inserted_at.day}"
time = "#{i.inserted_at.hour}-#{i.inserted_at.minute}-#{i.inserted_at.second}"
date <> " " <> time
Вы можете обернуть эту логику представления в представление Phoenix, например.
Кстати, когда у вас есть более сложная операция даты, вы можете использовать timex
Deps.
Вы можете использовать https://github.com/bitwalker/timex, например:
> {:ok, default_str} = Timex.format(datetime, "{ISO:Extended}")
{:ok, "2016-02-29T12:30:30.120+00:00"}