Как добавить минуты к объекту времени


79

В Ruby, как мне сделать Time.now + 10.hours ?

Есть ли эквивалент для secsи mins? Например:

Time.now + 15.mins

1
Это не работает наоборот 10 + Time.now:: TypeError: Time can't be coerced into Fixnumно Time.now + 10работает .. для всех, у кого такая же проблема;)
Йо Людке

Ответы:


144

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

@NailsonLandim, вы можете найти Timerizer полезным. «Синтаксис времени Rails без Rails».
Джефф Дики

Соответствующая часть документации Core Extensions - это guides.rubyonrails.org/… и следующие два раздела.
Железный Человек

77

Если вы используете ActiveSupport, вам нужен полный .minutesи .seconds.

Time.now + 10.minutes
Time.now + 10.seconds



1

Объект времени

time = Time.now

Добавление минут к объекту времени:

time + 5.minutes

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.