2016-01-07 5 views
2

Я начинаю сражаться с Эликсиром - Феникс, родом из Rails, и я люблю его. У меня проблема с датой, которую я получаю от Ecto: мне нужно отображать только день с автоматически созданного вставленного_at. Я также пытаюсь добиться этого с помощью Timex и плагина timex_ecto, пока не повезло.Ecto inserted_at, как получить только часть даты?

ответ

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, когда у вас есть результат в формате Эрл даты и времени ({{y, m, d}, {h, m, s}}) вы можете использовать Timex.Date.from/1

+0

Я пробовал сопоставление шаблонов, но для меня это все еще ново, с вашим ответом, я начинаю понимать это. Спасибо ! –

1

I обычно используют зависимость календаря (добавить в файл смешивания), а затем дали дату из вашей базы данных, например date_from_db = «2016-01-08T00: 14: 49», вы можете сделать что-то вроде:

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

Спасибо за это решение. Нахождение правильных зависимостей сейчас сложно в этом новом и растущем сообществе. –

Смежные вопросы