Json在完整日历中对数据进行了编码


Json encoded data in full calendar

我遇到了这样一个惊人的情况。我正在从MySql(使用Php)中检索数据,并将其编码为json编码的字符串,以便插入jQuery完整日历中。让我们来看看Php脚本=>

while ($birthday_row = $birthday_r->fetch_row()){
    $birthday_array[] = array(
        'id'  => $birthday_row[0],
        'title'     => $birthday_row[1],
        'start'     => "2012-" . $birthday_row[2] . "-" . $birthday_row[3],
    );                              
}

(我在从MySql检索数据时没有错误,它运行良好)

然后用json_encode函数编码,如下=>

$k = json_encode($birthday_array);

并将其插入jQuery完整日历中,这里是JavaScript=>

jQuery("#calendar").fullCalendar({ // initialize full calendar
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
        },
        <?php
            echo "events:" . $k . ",";
        ?>
        eventMouseover: function(calEvent,jsEvent,view){
            $(this).css("cursor","pointer");
        }
    });

我想知道的原因是,在Chrome中插入了数据,但在其他浏览器(如firefox、opera、explorer、safari)中没有。

顺便说一下,这里是$k变量=>的输出

[{"id":"1","title":"'u10d7'u10dd'u10e0'u10dc'u10d8'u10d9'u10d4 'u10dc'u10d0'u10dc'u10dd'u10d1'u10d0'u10e8'u10d5'u10d8'u10da'u10d8","start":"2012-10-2"},{"id":"2","title":"'u10d2'u10d8'u10dd'u10e0'u10d2'u10d8 'u10d9'u10d0'u10d9'u10d0'u10e8'u10d5'u10d8'u10da'u10d8","start":"2012-10-1"},{"id":"3","title":"'u10e0'u10e3'u10d7'u10d8 root","start":"2012-9-17"},{"id":"4","title":"one one","start":"2012-9-20"},{"id":"7","title":"'u10d2'u10d8'u10dd'u10e0'u10d2'u10d8 'u10d9'u10d0'u10d9'u10d0'u10e8'u10d5'u10d8'u10da'u10d8","start":"2012-9-5"},{"id":"8","title":"'u10d2'u10d8'u10dd'u10e0'u10d2'u10d8 'u10d0'u10e4'u10e0'u10d8'u10d0'u10e8'u10d5'u10d8'u10da'u10d8","start":"2012-1-16"}]

我不知道自己做错了什么,但事实是,结果让我感到疑惑。有什么想法请帮忙!事先感谢

我已经找出了问题的原因。chrome json编码字符串的输出是这样的=>,这是多么神奇

[{"id":"1","title":"some","start":"2012-5-9"}]

工作正常,但在其他浏览器中,如firefox、opera、safari、explorer,它不起作用。原因是日期的格式。在提到的浏览器中,如果必须像这样格式化=>

[{"id":"1","title":"some","start":"2012-05-09"}]

这就是2012-5-92012-05-09之间的区别。我真的没有遇到过这样的情况,不管怎样,如果有人想帮助我,并在我的问题上浪费时间,谢谢