Основное относительное время:
# If "time_ago" is more than 1 hour past the current time
if time_ago < 1.hour.ago
execute_me
end
Сравнение:
Используйте <
, чтобы узнать, старше ли time_ago
, чем 1.hour.ago
, и >
, чтобы узнать, является ли time_ago
более поздним, чем 1.hour.ago
Комбинируя время и используя дробные времена:
Вы можете комбинировать времена, как упоминал Давидб, и делать:
(1.day + 3.hours + 2500.seconds).ago
Вы также можете делать дробные секунды, например:0.5.seconds.ago
Нет .milliseconds.ago
, поэтому, если вам нужна точность в миллисекундах, просто разбейте ее на доли секунды.То есть 1 миллисекунда назад это:
0.001.seconds.ago
.ago () в целом:
Если поставить .ago
в конце практически любого числа, число будет считаться числом секунд.
Вы можете даже использовать дроби в парантезе:
(1/2.0).hour.ago # half hour ago
(1/4.0).year.ago # quarter year ago
ПРИМЕЧАНИЕ: чтобы использовать дроби, числитель или знаменатель должен быть числом с плавающей запятой, в противном случае Ruby автоматически применит ответ нацелое число, и отбросьте свою математику.