2017-04-10 2 views
0

ich in meiner Vorlage verwenden möchte, nur den Tag und Monat des Zeitstempels inserted_at die Ecto erstellt automatisch (2017-04-10 16:22:43) bei der Verwendung:Wie Ecto Zeitstempel zu forma

<%=i.inserted_at%> 

Ab heute, was ist der beste Weg, das zu tun?

+1

Wie '<% =" # {i.inserted_at.month} - # {i.inserted_at.day} "%>'? – Dogbert

+0

@Dogbert Genau das. Vielen Dank, Dogbert. –

Antwort

1

Ecto-Zeitstempel verwenden sind NaiveDateTime, können Sie dies zeigen, wenn die Darstellung in iex wie ist: ~N[].

können Sie NaiveDateTime von Elixier liefern verwenden wie folgt aus:

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 

Sie können zum Beispiel diese Präsentationslogik in Phoenix Ansicht wickeln.

Übrigens, wenn Sie komplexere Datum Operation haben, können Sie timex Deps verwenden.

1

Sie können https://github.com/bitwalker/timex verwenden, zum Beispiel:

> {:ok, default_str} = Timex.format(datetime, "{ISO:Extended}") 
{:ok, "2016-02-29T12:30:30.120+00:00"} 
+0

Ja. Timex ist sehr leistungsfähig, aber im Moment verwende ich die neue NiveDateTime, die von der neuen Version von Elixir bereitgestellt wird. Das du! –