私はこの問題に直面しており、完全なカレンダーには、イベントデータより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月4日0.00.00に設定した2012年11月3日16:00:00GMTです。
これが私のコードです
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に変更しても、私にとってはうまくいきませんでした。ですから、誰かが私を助けてくれたら幸いです。
たぶん、構文解析時間の線に沿った何か?