我正在尝试将模板中的时间格式化为" 12秒前"或者" 14分钟前"。 Ecto当前吐出的时间看起来像2016-06-28 21:35:21
。
目前,我只是将这样的时间渲染出来:<p><%= post.inserted_at %></p>
。
我知道ruby / rails有一个名为time_ago_in_words()
的函数可以完成我正在寻找的功能。也许这可以用新的Elixir 1.3日历类型来完成?
答案 0 :(得分:3)
您可以使用Timex
十六进制包。特别是from_now
功能。您需要确保日期类型为DateTime。然后只需使用
Timex.from_now(my_date)
#"2 hours ago"
要将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
答案 1 :(得分:0)
time_ago_in_words(~N[2015-03-05 21:45:00])
"about 6 years"
distance_of_time_in_words(~N[2004-06-06 21:45:00], ~N[2004-06-06 21:45:00], include_seconds: true)
"less than 5 seconds"
distance_of_time_in_words(~N[2004-06-06 21:45:00], ~N[2004-06-06 21:45:00])
"less than a minute"