Ruby on Rails - работа со временем - PullRequest
0 голосов
/ 14 июня 2010

Если в базе данных (MySQL) у меня есть столбец даты и времени (например, 1899-12-30 19:00:00), как мне сложить 1 день?

Подписан http://corelib.rubyonrails.org/classes/Time.html#M000240

Если я хочу добавить 1 день, это фактически добавляет 60 * 60 * 24 дня (86 400 дней)

r=Record.find(:first)
=>Sat, 30 Dec 1899 19:00:00 -0600
r.date + (60*60*24)
=>Fri, 20 Jul 2136 19:00:00 -0600

Но если я сделаю это, это фактически добавит 1 день:

t = Time.now
=>Mon Jun 14 10:32:51 -0600 2010
t + (60 * 60 * 24)
=>Tue Jun 15 10:33:21 -0600 2010

Полагаю, это связано с форматом ... как мне сделать эту работу?

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Вы фактически добавляете 86 400 секунд (60 секунд * 60 минут * 24 часа).

ActiveSupport имеет несколько встроенных вспомогательных методов для работы со временем:

Time.now + 1.day + 15.hours
0 голосов
/ 14 июня 2010

В Rails,

очень просто использовать времена.

r = Record.find(:first)

r.created_at + 1.day # this will give you a day to one day ahead ) 

r.created_at + 2.days + 15.hours + 30.minutes + 5.seconds


или использовать Time.now

Кроме того, если вы хотите взглянуть на by_starплагин / самоцвет делает некоторые запросы и т.д. очень легкими.

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