jQuery周日历约会仅出现在Chrome中,但不会出现在其他浏览器中

时间:2013-01-07 22:55:16

标签: javascript jquery cross-browser browser

我有一个奇怪的问题。我正在使用jQuery weekcalendar在浏览器的日历中显示约会。

Chrome的一切都很好。我的所有约会都会显示出来。在所有其他浏览器中,我只看到日历,但没有看到约会。

这是我calendar的链接。

有谁知道这里发生了什么?我不知道我应该在这个问题上添加什么代码,因为我不知道问题出在哪里。但是,如果您检查页面源代码,则代码可见。

2 个答案:

答案 0 :(得分:3)

您的问题与解析来自ajax调用“http://www.slinder.ch/admin/php/termin_getappointments.php”的日期的方式有关。您正在使用“new Date()”转换为日期。虽然这在chrome中运行良好,但它在其他浏览器中不起作用。尝试解析日期格式,如以下帖子中所述:

How can I convert string to datetime with format specification in JavaScript?

具有以下代码示例的答案似乎已足够,它使用ajax调用返回的确切日期格式:

var dateString = "2010-08-09 01:02:03";
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(dateString); 
var dateObject = new Date(
    (+dateArray[1]),
    (+dateArray[2])-1, // Careful, month starts at 0!
    (+dateArray[3]),
    (+dateArray[4]),
    (+dateArray[5]),
    (+dateArray[6])
);

答案 1 :(得分:0)

尝试更改此代码:

appointments.push({
  id: id,
  start: new Date(start),
  end: new Date(end),
  title: '<b>' + title + '</b> - ' + body,
  userId: userid
});

应该是:

appointments.push({
  id: id,
  start: moment(start, "YYYY-MM-dd HH:mm:ss"),
  end: moment(end, "YYYY-MM-dd HH:mm:ss"),
  title: '<b>' + title + '</b> - ' + body,
  userId: userid
});