如何将日期添加到Ecto.DateTime?

时间:2016-07-05 07:34:22

标签: date elixir phoenix-framework

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

Ecto.DateTime.from_erl({{2015, 3, 10}, {0, 0, 0}})

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

4 个答案:

答案 0 :(得分:6)

您可以使用erlang的:calendar模块来操作日期而无需其他依赖项。

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

答案 1 :(得分:1)

正确的灵药语法

weekday=  :calendar.gregorian_days_to_date(:calendar.date_to_gregorian_days({2011, 7, 14}) - 90)

IO.inspect weekday

{2011, 4, 15}

答案 2 :(得分:1)

表示日期时间 假设no_of_days是你想要添加的天数。

{{a,b,c},{hh,mm,ss}} = :calendar.universal_time()
{x,y,z} = :calendar.gregorian_days_to_date(:calendar.date_to_gregorian_days({a,b,c}) +no_of_days)
time = Ecto.DateTime.from_erl({{x,y,z},{hh,mm,ss}})

答案 3 :(得分:0)

从Elixir 1.5.0起,您可以使用DateTime.add/2在日期中添加天数。

# add five days to the current day
DateTime.utc_now |> Date.add(5)