2012-06-22 4 views
1

У меня есть datetime, называемое dispatched_time, которое я вычитаю из Time.now, что приводит к числу с плавающей точкой, то есть: 302.332, который является методом elapsed_time. Мне нужно выяснить способ принять значение этого числа и отформатировать его во времени на мой взгляд. т.е.: 13:20.Форматирование времени плавания в рельсах

Я попытался использовать elapsed_time.strftime ("% H% M"), но strftime не будет обрабатывать float.

Может ли кто-нибудь помочь мне с преобразованием поплавка за считанные секунды в формат ЧЧ: ММ?

ответ

2

Вы можете попробовать Time.at(elapsed_time).utc.strftime("%H:%M"). Это должно дать вам часы/минуты между двумя моментами, созданными, как если бы это было время. Обратите внимание, что это может не сработать, если между двумя моментами существует более 24 часов, и в этом случае вам потребуется добавить параметр дня ("%d") в строку, переданную в strftime.

+0

Это то, что я искал. Я выполнял всю математику в методе elapsed_time (в секундах) и передавал поплавок, а затем разбивался на формат. Метод, который вы предложили, намного проще и из того, что я вижу до сих пор, точный. Спасибо, Уильям! – nulltek

0

Вы можете попытаться использовать драгоценный камень тоти или рубина. Это может упростить вам вещи.

+0

dotiw не то, что я ищу. Я могу посмотреть на продолжительность ruby, но то, что я действительно искал, было способом вычисления и разделения на формат HH: MM, который я могу использовать в качестве помощника вида. – nulltek