Что вы просите Ruby сделать с Time.parse, так это определить время суток.Это не то, что вы хотите.Все библиотеки, о которых я могу думать, похожи в этом аспекте: они заинтересованы в абсолютных временах, а не отрезках времени.
Чтобы преобразовать ваши строки в форматы времени, с которыми мы можем работать, я рекомендую использовать Chronic (gem install chronic
).Чтобы преобразовать в секунды, мы можем сделать все, что связано с текущим временем, а затем вычесть это время, чтобы получить абсолютное количество секунд, по желанию.
def seconds_in(time)
now = Time.now
Chronic.parse("#{time} from now", :now => now) - now
end
seconds_in '48 hours' # => 172,800.0
seconds_in '15 minutes' # => 900.0
seconds_in 'a lifetime' # NoMethodError, not 42 ;)
Пара быстрых примечаний:
- * * * * * * * * * * * *
from now
* * * * * * * * * * * * * * * * * * * * * * - * * * * * * * * * * * * * * * * * * * * * * *] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Г-н. * * * * * * * * * * * * * * * * * * * * * * П-точнее, что в случае, когда «Хроник» изменяется по сравнению с «Хроникой».это волшебство и время, которое мы вычитаем из результата.Это может произойти не когда-нибудь, но лучше, чем потом сожалеть, я думаю.