Próbowałem robić coś podobnegoJak dodać 10 dni do aktualnego czasu w Rails
Time.now + 5.days
ale to nie działa, choć mgliście pamiętam widząc i będąc pod wrażeniem, ze jest w stanie coś zrobić jak 2.years
itd.
Jak to zrobić w Rails 3?
Próbowałem robić coś podobnegoJak dodać 10 dni do aktualnego czasu w Rails
Time.now + 5.days
ale to nie działa, choć mgliście pamiętam widząc i będąc pod wrażeniem, ze jest w stanie coś zrobić jak 2.years
itd.
Jak to zrobić w Rails 3?
Zastosowanie
Time.now + 10.days
lub nawet
10.days.from_now
Zarówno zdecydowanie działać. Czy na pewno jesteś w Railsach, a nie tylko Ruby?
Jeśli na pewno jesteś w Railsach, to gdzie próbujesz to uruchomić? Zauważ, że Active Support musi zostać załadowany.
days
, years
, etc., są częścią aktywnego wsparcia, więc to nie będzie działać w irb
, ale to powinno działać w rails console
.
yeup - spot on. nie można tego zrobić w rubinach waniliowych. –
To na pewno działa i używam tego gdziekolwiek muszę dodać dni do bieżącej daty:
Date.today() + 5
kilka innych opcji, tylko dla odniesienia
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Wystarczy wymienić wszystkie opcje znam :
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Więc jaka jest różnica między nimi, jeśli zależy nam na strefie czasowej:
[1, 4]
Ze strefy czasowej systemu[2, 3]
Z czasowej config twoich Rails aplikacji[5]
Data tylko brak czasu zawarte w wynikuSpróbuj on Rails
Time.new + 10.days
spróbować to na Ruby
require 'date'
DateTime.now.next_day(10).to_time
Spróbuj tego na Ruby. Zwróci nową datę/czas określoną liczbę dni w przyszłości
DateTime.now.days_since(10)
To powinno zadziałać. Jaki błąd dostałeś? – cam
dodał tag dla activesupport – sethvargo
To powinno działać tak. Ponieważ jesteś w szynach, Time.zone.now brzmi bardziej odpowiedni – Ben