用 phoenix 格式化时间之前的单词

Ala*_*ung 3 elixir ecto phoenix-framework

我正在尝试将模板中的时间格式设置为“12 秒前”或“14 分钟前”。Ecto 目前吐出的时间看起来像2016-06-28 21:35:21。

目前我只是像这样渲染时间:<p><%= post.inserted_at %></p>。

我知道 ruby​​/rails 有一个名为的函数time_ago_in_words(),它可以满足我的需求。也许这可以通过新的 Elixir 1.3 日历类​​型来完成?

cod*_*hal 7

您可以使用Timex十六进制包。具体from_now功能。您需要确保您拥有 DateTime 类型的日期。然后只需使用

Timex.from_now(my_date)
#"2 hours ago"
Run Code Online (Sandbox Code Playgroud)

为了转换Ecto.DateTime为Timex.DateTime我用过这个

my_ecto_dateTime
#Ecto.DateTime<2016-05-16T16:26:55Z>
{:ok, date} =  Ecto.DateTime.dump(my_ecto_dateTime)
my_date = Timex.DateTime.from date
Run Code Online (Sandbox Code Playgroud)