Próbowałem zrobić coś takiego
Time.now + 5.days
ale to nie działa, mimo że mgliście pamiętam, że widziałem i byłem pod wielkim wrażeniem, że mogłem zrobić coś takiego 2.years
itp.
Jak to zrobić w Railsach 3?
ruby-on-rails
datetime
ruby-on-rails-3
activesupport
Yuval Karmi
źródło
źródło
Odpowiedzi:
Posługiwać się
lub nawet
Obie zdecydowanie działają. Czy na pewno jesteś w Railsach, a nie tylko w Rubim?
Jeśli na pewno jesteś w Railsach, skąd próbujesz to uruchomić? Pamiętaj, że należy załadować Active Support.
źródło
Time.now + 10.days
zawsze wybiera strefę czasową systemu, podczas gdy10.days.from_now
wybierze strefę czasową UTC, jeśli nic nie jest ustawione w konfiguracji rails.Time.zone.now
zamiastTime.now
.days
,years
Itd, są częścią aktywnego wsparcia, więc to nie będzie działać wirb
, ale to powinno działać wrails console
.źródło
require 'active_support/time'
na początku sesji lub przed użyciem jego poleceńTo zdecydowanie działa i używam tego wszędzie tam, gdzie potrzebuję dodać dni do bieżącej daty:
źródło
Kilka innych opcji, tylko w celach informacyjnych
Po prostu wymień wszystkie opcje, które znam:
A więc jaka jest różnica między nimi, jeśli zależy nam na strefie czasowej:
[1, 4]
Ze strefą czasową systemu[2, 3]
Z konfiguracją strefy czasowej Twojej aplikacji Rails[5]
Tylko data nie zawiera czasu w wynikuźródło
Spróbuj tego na Railsach
Spróbuj tego na Rubim
źródło
Spróbuj tego na Rubim. Zwróci nową datę / godzinę określoną liczbę dni w przyszłości
źródło