2016-07-05 14 views
5

Mam Date-Time, który tworzę tak:Jak dodać dni do Ecto.DateTime?

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

Jest to aplikacja Phoenix. Chcę dodać do niego dni bez żadnej dodatkowej biblioteki innej firmy. W jaki sposób?

Odpowiedz

6

Możesz użyć modułu Erlanga :calendar do manipulowania datami bez dodatkowych zależności.

Standardowym sposobem dodawania dni byłoby użycie :calendar.date_to_gregorian_days/1 do dodania i konwersji z powrotem do formatu krotki z :calendar.gregorian_days_to_date/1.

+0

czy to nie dodatkowa zależność? faktycznie, mam DateTime. –

+0

Nie, przychodzi w standardowej bibliotece erlang. – michalmuskala

1

Prawidłowa składnia eliksir

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

IO.inspect weekday 

{2011, 4, 15} 
1

dla datetime powiedzmy NO_OF_DAYS jest liczba dni u chcą dodać.

{{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}})