如何为Ecto.DateTime添加天数?

Ala*_*ano 6 date elixir phoenix-framework

我有一个日期时间,我这样创建:

Ecto.DateTime.from_erl({{2015, 3, 10}, {0, 0, 0}})
Run Code Online (Sandbox Code Playgroud)

这是凤凰应用程序.我想在没有任何额外的第三方库的情况下添加天数.怎么样?

Ian*_*ter 8

至少从 Elixir 1.5.0 开始,您可以使用DateTime.add/2向日期添加天数。

# add five days to the current day
DateTime.utc_now |> DateTime.add(5*24*60*60, :second)
Run Code Online (Sandbox Code Playgroud)

  • 很好,但要小心:结果将是一个日期,*不是*一个日期时间 (2认同)

mic*_*ala 7

您可以使用erlang的:calendar模块来操作日期而无需额外的依赖项.

添加天数的标准方法是使用:calendar.date_to_gregorian_days/1添加并转换回元组格式:calendar.gregorian_days_to_date/1.