рассчитать разницу во времени в днях, часах и минутах - PullRequest
3 голосов
/ 04 августа 2011

ОБНОВЛЕНИЕ: я обновляю вопрос, чтобы отразить полное решение.Используя гем time_diff Бретта, упомянутый ниже, работал следующий код.

код:

cur_time = Time.now.strftime('%Y-%m-%d %H:%M')
Time.diff(Time.parse('2011-08-12 09:00'), Time.parse(cur_time))

Спасибо, Бретт.

Ответы [ 2 ]

14 голосов
/ 04 августа 2011

Не используя внешний драгоценный камень, вы можете легко получить разницу между датами, используя такой метод:

def release(time)
  delta = time - Time.now

  %w[days hours minutes].collect do |step|
    seconds = 1.send(step)
    (delta / seconds).to_i.tap do
      delta %= seconds
    end
  end
end

release(("2011-08-12 09:00:00").to_time)
# => [7, 17, 37]

, который возвращает массив дней, часов и минут и может быть легко расширен, включая также годы, месяцы и секунды:

def release(time)
  delta = time - Time.now

  %w[years months days hours minutes seconds].collect do |step|
    seconds = 1.send(step)
    (delta / seconds).to_i.tap do
      delta %= seconds
    end
  end
end

release(("2011-08-12 09:00:00").to_time)
# => [0, 0, 7, 17, 38, 13]
8 голосов
/ 04 августа 2011

Я использовал time_diff , чтобы легко достичь такого рода вещей, вы можете проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...