如何正确地将JSON从PHP传递到Javascript与日期?

时间:2012-10-31 07:42:52

标签: php javascript jquery json

我正在修补Jquery Weekly Calendar插件(你可以在这里看一下完整的演示: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? 谢谢:))

1 个答案:

答案 0 :(得分:0)

请考虑:来自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了解日期格式