我一直面临这个问题,完整的日历会在比事件数据晚 8 小时的时间显示我的事件。我认为这是由于我的时区。
这是我的跟踪消息
Started GET "/events?custom_param1=something&custom_param2=somethingelse& start=1351958400&end=1352563200& authenticity_token=XEXpcBRnQuEivJ2NWjR2+OZ+Uscypalxx+hqGTIiwZA=&_=1352086291522" for 127.0.0.1 at 2012-11-05 11:31:31 +0800
Processing by EventsController#index as JSON
Parameters: {"custom_param1"=>"something", "custom_param2"=>"somethingelse", "start"=>"1351958400", "end"=>"1352563200", "authenticity_token"=>"XEXpcBRnQuEivJ2NWjR2 OZ Uscypalxx hqGTIiwZA=", "_"=>"1352086291522"}
Event Load (0.5ms) SELECT `events`.* FROM `events` WHERE (starts_at > '2012-11-04T00:00:00+08:00') AND (ends_at < '2012-11-11T00:00:00+08:00')
Completed 200 OK in 10ms (Views: 8.2ms | ActiveRecord: 0.5ms)
这里的问题是 Unix 中的开始时间是 2012 年 11 月 3 日星期六 16:00:00 GMT,而我将其设置为 2012 年 11 月 4 日 0.00.00。
这是我的代码
class Event < ActiveRecord::Base
scope :before, lambda {|end_time| {:conditions => ["ends_at < ?", Event.format_date(end_time)] }}
scope :after, lambda {|start_time| {:conditions => ["starts_at > ?", Event.format_date(start_time)] }}
def as_json(options = {})
{
:id => self.id,
:title => self.title,
:description => self.description || "",
:start => starts_at.rfc822,
:end => ends_at.rfc822,
:allDay => false,
:recurring => false,
:url => Rails.application.routes.url_helpers.event_path(id),
#:color => "red"
}
end
def self.format_date(date_time)
Time.at(date_time.to_i).to_time.iso8601
end
end
将 ignoreTimeZone 更改为 true 对我也不起作用。因此,如果有人可以帮助我,我将不胜感激。
也许类似于解析时间的东西?