В Ruby, как мне сделать Time.now + 10.hours
?
Есть ли эквивалент для secs
и mins
? Например:
Time.now + 15.mins
ruby-on-rails
ruby
time
керуилин
источник
источник
10 + Time.now
::TypeError: Time can't be coerced into Fixnum
ноTime.now + 10
работает .. для всех, у кого такая же проблема;)Ответы:
Ruby (язык программирования) не имеет
10.hours
этогоActiveSupport
как часть Ruby on Rails (веб-фреймворк). И да, у него естьminutes
иseconds
методы, и.Однако
Time#+
(метод + для экземпляров Time) возвращает новый экземпляр Time, который находится на столько секунд в будущем. Итак, без сахара Ruby on Rails вы можете просто:irb> t = Time.now #=> 2011-08-03 22:35:01 -0600 irb> t2 = t + 10 # 10 Seconds #=> 2011-08-03 22:35:11 -0600 irb> t3 = t + 10*60 # 10 minutes #=> 2011-08-03 22:45:01 -0600 irb> t4 = t + 10*60*60 # 10 hours #=> 2011-08-04 08:35:01 -0600
источник
Если вы используете ActiveSupport, вам нужен полный
.minutes
и.seconds
.Time.now + 10.minutes Time.now + 10.seconds
источник
Также в ActiveSupport вы можете:
10.minutes.from_now 10.minutes.ago
источник
Я думаю, вы говорите о расширениях, добавленных Rails. Я думаю тебе нужно
15.minutes
.Дополнительные сведения см. В разделе Расширения ядра активной поддержки для даты, даты и времени .
источник
Объект времени
time = Time.now
Добавление минут к объекту времени:
time + 5.minutes
источник