несоответствие между Time.zone.now при вызове само по себе и в операторе where - PullRequest
0 голосов
/ 23 марта 2012

Я пытаюсь выбрать элементы между двумя датами.Time.zone.now, кажется, уважает значение зоны, но когда вызывается как часть Active Record, это не так.Я не храню свои данные в формате UTC, поэтому указание Time.zone.now должно возвращать время текущей указанной зоны.Как мне сделать это правильно?Какова логика мышления?

thx

ruby-1.9.2-p290 :009 > Time.zone.now
 => Thu, 22 Mar 2012 22:26:43 PDT -07:00 
ruby-1.9.2-p290 :010 > Event.where(:start_datetime => (Time.zone.now)..(Time.zone.now.end_of_day))
  Event Load (0.5ms)  SELECT `events`.* FROM `events` WHERE (`events`.`start_datetime` BETWEEN '2012-03-23 05:26:59' AND '2012-03-23 06:59:59')
 => [] 
ruby-1.9.2-p290 :011 > 

1 Ответ

0 голосов
/ 23 марта 2012

Попробуйте такие вещи, как:

Event.where(:start_datetime => (Time.now.in_time_zone(YOUR_TIME_ZONE))..(Time.zone.now.end_of_day.in_time_zone(YOUR_TIME_ZONE))

YOUR_TIME_ZONE like "Eastern Time (US & Canada)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...