Rails 时间助手上 Ruby 的 Elixir 等效值(例如 1.day.ago)
Elixir equivalent for Ruby on Rails time helpers (e.g. 1.day.ago)
我目前正在构建一个 Phoenix 应用程序,对这个生态系统还比较陌生。来自 Rails 上的 Ruby,我非常习惯 rails 中可用的便利 date/time 方法(我相信是通过内置的 ActiveSupport Gem)。例如:
1.day.ago
some_date_time + 1.hour
some_date.next_weekday.at_beginning_of_day
我特别欣赏他们清晰简洁地表达概念上简单(至少对人类来说)时间操作的能力,同时抽象出混乱的日期数学。
我觉得以下内容令人反感
NaiveDateTime.add(
NaiveDateTime.utc_now(),
Enum.random(-5..-1) * 60 * 60 * 24)
目前还不是很清楚,也不会处理微妙的时间警告,例如飞跃 seconds/days 等。也不是很清楚我如何向前推进 1 个月或一年。
是否有 popular/canon Elixir 软件包提供类似的清晰度和功能?如果它也简洁,加分。
嗯,有timex,可能是使用最多的elixir时间相关库。我不认为它拥有 Rails 拥有的所有花里胡哨的东西,但它应该会让生活更轻松一些。 timex 自述文件中的一些示例:
> use Timex
> datetime = Timex.now
#<DateTime(2016-02-29T12:30:30.120+00:00Z Etc/UTC)
> Timex.shift(datetime, hours: 2, minutes: 13)
#<DateTime(2016-02-29T14:43:30.120Z Etc/UTC)>
我目前正在构建一个 Phoenix 应用程序,对这个生态系统还比较陌生。来自 Rails 上的 Ruby,我非常习惯 rails 中可用的便利 date/time 方法(我相信是通过内置的 ActiveSupport Gem)。例如:
1.day.ago
some_date_time + 1.hour
some_date.next_weekday.at_beginning_of_day
我特别欣赏他们清晰简洁地表达概念上简单(至少对人类来说)时间操作的能力,同时抽象出混乱的日期数学。
我觉得以下内容令人反感
NaiveDateTime.add(
NaiveDateTime.utc_now(),
Enum.random(-5..-1) * 60 * 60 * 24)
目前还不是很清楚,也不会处理微妙的时间警告,例如飞跃 seconds/days 等。也不是很清楚我如何向前推进 1 个月或一年。
是否有 popular/canon Elixir 软件包提供类似的清晰度和功能?如果它也简洁,加分。
嗯,有timex,可能是使用最多的elixir时间相关库。我不认为它拥有 Rails 拥有的所有花里胡哨的东西,但它应该会让生活更轻松一些。 timex 自述文件中的一些示例:
> use Timex
> datetime = Timex.now
#<DateTime(2016-02-29T12:30:30.120+00:00Z Etc/UTC)
> Timex.shift(datetime, hours: 2, minutes: 13)
#<DateTime(2016-02-29T14:43:30.120Z Etc/UTC)>