Как отформатировать временную метку 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"}
Другие вопросы по тегам