Гуманизировать время - PullRequest
9 голосов
/ 18 марта 2011

У меня есть ряд скоропортящихся продуктов.Следовательно, у каждого продукта есть атрибут под названием hours_expiration, который указывает, сколько часов продукт может быть использован до того, как он испортится.

Например, срок годности яблока истекает через 168 часов;Срок действия гайки истекает через 4320 часов.

Учитывая, сколько часов до истечения срока годности продукта и текущее время (Time.now или Date.now), как я могу гуманизировать время истечения срока годности в некоторых из следующихПримеры способов?

Срок действия вашего товара истекает примерно через:

  • 6 месяцев и 14 дней
  • 1 месяц и 13 дней
  • 1месяц и 1 день
  • 27 дней
  • 1 день
  • 23 часа
  • 1 час
  • 50 минут
  • 1 минута

Ищете что-то надежное и простое!

Ответы [ 3 ]

20 голосов
/ 18 марта 2011

Помощник distance_of_time_in_words - это то, что вы просите.

1 голос
/ 18 марта 2011

Посмотрите на расстояние от времени: http://apidock.com/rails/ActionView/Helpers/DateHelper/distance_of_time_in_words

0 голосов
/ 18 февраля 2019

Другой простой помощник - time_ago_in_words: https://apidock.com/rails/ActionView/Helpers/DateHelper/time_ago_in_words

Название метода может звучать так, как будто оно может иметь дело только с прошлыми датами, но на самом деле оно прекрасно обрабатывает будущие даты. Вы можете попробовать это в своей консоли rails:

expiration_date = Time.now + 5.days 
puts "Expires in #{helper.time_ago_in_words(expiration_date)}"

«Истекает через 5 дней»

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