0

我正在修改 Jquery 每周日历插件(您可以在此处查看完整演示:skedyul.herokuapp.com)

现在,我正在尝试使用 PHP 动态放置一些事件,但我对 JSON 的概念还很陌生。

这是我要编码为 JSON 的示例 php 数组:

<?php 
        $events = array(
            array(
            "id" => 1,
            "start" => date("D M j Y H:i:s "),
            "end" =>  date("D M j Y H:i:s ",strtotime("+30 minutes")),
            "title" => "College Algebra"
            ),
            array(
            "id" => 2,
            "start" => date("D M j Y H:i:s ",strtotime("+30 minutes +1 day")),
            "end" =>  date("D M j Y H:i:s ",strtotime("+45 minutes +1 day")),
            "title" => "Calculus"
            )
        );
?>

这是带有一些示例数据的工作 Javascript 代码:

<script type="text/javascript">

        function getEventData() {
          var year = new Date().getFullYear();
          var month = new Date().getMonth();
          var day = new Date().getDate();
          console.log(new Date(year, month, day, 12));
          return {
             events : [
                {
                   "id":1,
                   "start": new Date(year, month, day, 12),
                   "end": new Date(year, month, day, 13, 30),
                   "title":"College Algebra",
                },
                {
                   "id":2,
                   "start": new Date(year, month, day, 14),
                   "end": new Date(year, month, day, 14, 45),
                   "title":"Statistics and Probability"
                }
             ]
          };
       }

在这里,我把上面的Javascript改成了这个(把json编码的php关联数组)

<script type="text/javascript">

            function getEventData() {
              var year = new Date().getFullYear();
              var month = new Date().getMonth();
              var day = new Date().getDate();
              console.log(new Date(year, month, day, 12));
              return {
                 events : <?php echo json_encode($events)?>
              };
           }
</script>

它似乎工作并且不会喷出错误,但问题在于日期。它没有在日历上正确显示..

如何正确地从 PHP 传递带有日期的 JSON? 谢谢 :)

4

1 回答 1

1

请考虑:来自http://code.google.com/p/datejs
的 date.js 您可以使用Date.parse()Date.parseExact() 在您的情况下,您可以使用 Date.parseExact(dateString, "d MMM d yyyy HH:mm:ss")

在您的页面中,包含 date.js。

<script src="http://yoursite/path/to/date.js"></script>

然后尝试以下...

var dateobj = Date.parseExact(dateString, "d MMM d yyyy HH:mm:ss")
alert(dateobj.toString());

请阅读http://code.google.com/p/datejs/wiki/FormatSpecifiers了解日期格式

于 2012-10-31T07:53:34.027 回答