如何修复javascript(完整日历)和rails之间的时间差?
我使用完整日历jquery插件创建时间表,代码如下如何修复javascript(完整日历)和rails之间的时间差?,javascript,jquery,ruby-on-rails-3,fullcalendar,Javascript,Jquery,Ruby On Rails 3,Fullcalendar,我使用完整日历jquery插件创建时间表,代码如下 $("#calendar").fullCalendar { defaultView: 'agendaWeek' hiddenDays: [0] axisFormat: 'HH:mm' minTime: '8:00' maxTime: '22:00' selectable: true agenda: 'h:mm{ - h:mm}' eventColor: '#00CCFF' eventBackgroundColor: '#00C
$("#calendar").fullCalendar {
defaultView: 'agendaWeek'
hiddenDays: [0]
axisFormat: 'HH:mm'
minTime: '8:00'
maxTime: '22:00'
selectable: true
agenda: 'h:mm{ - h:mm}'
eventColor: '#00CCFF'
eventBackgroundColor: '#00CCFF'
defaultEventMinutes: 60
editable: true
DurationEditable: true
allDayDefault: false
droppable: true
columnFormat:
week: 'ddd'
eventResize: (event,dayDelta,minuteDelta,revertFunc) ->
alert event
eventDrop: (event,dayDelta,minuteDelta,allDay,revertFunc) ->
$.ajax
url: "/events/#{event.id}"
type: 'PATCH'
data:
'event':
'start' : event.start
'dayDelta' : dayDelta
'minuteDelta' : minuteDelta
success: (data) ->
drop: (date, allDay, jsEvent, ui) ->
copiedEventObject = {}
copiedEventObject.start = date
copiedEventObject.title = $(this).text()
copiedEventObject.data_id = $(this).attr 'data-id'
copiedEventObject.data_type = $(this).attr 'data-type'
copiedEventObject.slotMinutes = Number($(this).attr('data-duration')) * 60
copiedEventObject.allDay = allDay
$('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
$(this).hide()
$.post '/events', { 'event' : { 'title' : copiedEventObject.title, 'start' : copiedEventObject.start, 'data_id' : copiedEventObject.data_id, 'data_type' : copiedEventObject.data_type } }, (data) ->
eventSources: [ "/events/?courses=#{courses}" ]
header: {
left: '',
center: '',
right: ''
}
}
timeFormat: 'H(:mm)'
在我的控制器中,我从javascript获得的时间必须增加5小时30分钟
def create
case params[:event][:data_type]
when 'lecture'
parent = Lecture.find(params[:event][:data_id])
when 'tutorial'
parent = Tutorial.find(params[:event][:data_id])
when 'lab'
parent = Lab.find(params[:event][:data_id])
end
params[:event][:start] = DateTime.parse(params[:event][:start]) + 5.hours + 30.minutes
event = parent.create_event(event_params)
if event then parent.update_attribute(:scheduled,true) end
render nothing: true
end
如果我不这样做,在日历上呈现的事件似乎比我删除它的时间晚了5小时30分钟。
为什么会出现问题。请帮助RoR使用服务器时间,Javascript使用客户端计算机时间,不能保证它们是相同的。还有本地时间等。如果需要匹配时间,请获取servertime并在两者中使用。是否尝试在配置中的environment.rb中设置时区?此外,本页可能会帮助您感谢各位的建议。干杯。@adeneo如果您需要匹配时间,请您解释一下这一部分,获取服务器时间并在两者中使用。。日期/时间是根据我将事件放置在日历的哪个部分动态生成的。