Работа с датой и временем - PullRequest
4 голосов
/ 16 февраля 2010
  1. Например, у меня дата UTC Tue, 16 Feb 2010 03:12:02 UTC +00:00.
  2. Я хочу добавить 168 часов к этой дате, чтобы получить будущую дату UTC.
  3. Какой лучший способ сделать это?

Ответы [ 3 ]

9 голосов
/ 16 февраля 2010

Вы пометили вопрос rails, поэтому вот как вы можете сделать это в Rails, используя несколько помощников:

time_string = 'Tue, 16 Feb 2010 03:12:02 UTC +00:00'
new_time = Time.parse( time_string ) + 168.hours

Если у вас уже есть объект Time, просто добавьте 168.hours:

new_time = old_time + 168.hours

Или вы можете просто добавить 1.week:

new_time = old_time + 1.week
1 голос
/ 16 февраля 2010

В ванильном Ruby это не намного сложнее:

time_string = 'Tue, 16 Feb 2010 03:12:02 UTC +00:00'
new_time = DateTime.parse( time_string ) + 7

(Вы можете просто использовать класс Date, он все равно будет работать.)

Я допускаю, что добавление в часы немного сложнее.

1 голос
/ 16 февраля 2010

К вашему сведению, «9.days» проще, чем «168.hours».

>> new_time = Time.parse( time_string ) + 168.hours
=> Tue Feb 23 03:12:02 UTC 2010
>> new_time = Time.parse( time_string ) + 9.days
=> Thu Feb 25 03:12:02 UTC 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...