【发布时间】:2012-02-02 10:23:02
【问题描述】:
我已经使用 FullCalendar 插件有一段时间了,我已经设法让它在 FF 和 Chrome 中工作,但我似乎无法理解为什么这些事件没有出现在 Safari 上。
我正在使用 Rails 后端将事件作为数组获取。这是 FireBug 显示的事件的 JSON 对象。
_end: Invalid Date
_id: "1953"
_start: Fri Feb 10 2012 00:00:00 GMT+0530 (IST)
allDay: false
backgroundColor: "#F60 !important"
className: Array[0]
color: "#FFFFFF !important"
description: ""
end: Invalid Date
start: Fri Feb 10 2012 00:00:00 GMT+0530 (IST)
textColor: "#FFFFFF !important"
__proto__: Object
我在 Safari 控制台上没有错误。无效的结束日期在 FF 和 Chrome 上显示为 null。
这是我填充事件的方式
event[:id] = each_event.id
event[:title] = each_event.event_title
event[:allDay] = each_event.all_day?
event[:start] = each_event.start_time.strftime('%Y-%m-%d %H:%M:00')
event[:end] = each_event.end_date.to_time.strftime('%Y-%m-%d %H:%M:00') if each_event.end_date.present?
event[:color] = '#FFFFFF !important'
event[:backgroundColor] = (each_event.user == current_user) ? '#F60 !important' : '#090 !important'
event[:backgroundColor] = '#090 !important' unless each_event.private?
event[:textColor] = '#FFFFFF !important'
我也尝试将日期时间转换为 iso8601 格式,但没有成功。我完全不知道问题是什么。非常感谢您的帮助。
【问题讨论】:
-
这里有同样的问题。你有没有设法解决这个问题?
-
我使用 fullCalendar 已经有一段时间了,到目前为止,我在 Safari 上遇到的所有问题都是日期的解析方式有所不同。例如,(Mac 上的 Safari 6.0(7536.25)) -- new Date('01-01-2000') 是无效的,而在其他浏览器中它是完全有效的。在这些情况下,您应该用正斜杠替换所有连字符,因此结果类似于 new Date('01/01/2000')。我希望这会有所帮助。
-
@TomReznik 就我而言,是字符串,这个问题让我找到了正确的位置。但这不是破折号与斜线的问题,在我的情况下,它与破折号完美配合。相反,它是当天的格式,我输出的是一个数字(2012-11-1),而缺少的前导 0 是它被抛弃的原因。我猜这个错误在接近年底的时候会更频繁地遇到,我敢肯定这个月也会遇到同样的错误,但在 10 月和 11 月没有注意到。
标签: jquery ruby-on-rails safari fullcalendar