完整日历:为日历的json添加时间

时间:2009-11-04 12:04:09

标签: jquery jquery-plugins

我一直在使用fullCalendar一段时间并通过json获取数据。下面列出了一个样本。

[{"id":2,"name":"1","title":"takvim","start":"2009-11-04","end":"2009-11-04"}]

它工作正常,但我升级了新版本的日历,它有议程周视图。我需要在议程周上使用网格区域(小时),所以我的json必须是这样的。

[{"id":2,"name":"1","title":"takvim","start":"2009-11-04 12:30:00","end":"2009-11-04 13:30:00"}]

此外,如果我将数据用作静态,我可以像这样使用它

{
title: 'Meeting',
start: new Date(y, m, d, 10, 30),
allDay: false
}

不幸的是,当我添加时间时没有数据出现。我该如何解决?

3 个答案:

答案 0 :(得分:1)

你的代码很好但是我应该指出,没有办法将json的代码传递给小时:最小值。至少我无法处理它。基本上javascript Date对象是如何工作的?

var $date = new Date(Year,months,day,hour,min,sec) and  in calendar works like this

{
                title: 'Lunch',
                start: new Date(y, m, d, 12, 0),
                end: new Date(y, m, d, 14, 0),
                allDay: false
            },

因此您应该拆分您的值然后可以获取每个日期对象。你也应该改变你的json代码。

[{"id":"1","title":"piman","start":"2009-11-04-00:00:00","end":"2009-11-04-16:00:00"}]

可能有更简单的方法但是你知道文档很差。但它可以正常使用它的风格......

干杯

答案 1 :(得分:0)

我解决了这个问题。首先,我从here获取了一些代码并进行了更改。我在下面展示......

events: function(start, end, callback) {

    // do some asynchronous ajax
    $.getJSON("aj_calendar_json.asp?rndtime="+new Date().getTime()+"&baseID=<%=baseId%>&depId=<%=depId%>",
            {
                    start: start.getTime(),
                    end: end.getTime()
            },
            function(result) {

                    if(result != null){

                        for (i in result) {

                            var calEvent = result[i];

                            var $startNew   = calEvent.start.split("-")
                                $sNewYear   = parseInt($startNew[0])
                                $sNewMonth  = (parseInt($startNew[1])-1)
                                $sNewDay    = parseInt($startNew[2])
                                $sNewTime   = $.trim($startNew[3])

                                if ( $sNewTime != "" ){
                                    $splitNewTime   = $sNewTime.split(":")
                                    $sNewTimeHour   = $splitNewTime[0]
                                    $sNewTimeMin    = $splitNewTime[1]
                                }
                                else{
                                    $sNewTimeHour   = 0
                                    $sNewTimeMin    = 0
                                }                                                                                       

                            var $endNew     = calEvent.end.split("-")
                                $eNewYear   = parseInt($endNew[0])
                                $eNewMonth  = (parseInt($endNew[1])-1)
                                $eNewDay    = parseInt($endNew[2])
                                $eNewTime   = $.trim($endNew[3])

                                if ( $eNewTime != "" ){
                                    $splitNewTime   = $eNewTime.split(":")
                                    $eNewTimeHour   = $splitNewTime[0]
                                    $eNewTimeMin    = $splitNewTime[1]
                                }
                                else{
                                    $eNewTimeHour   = 0
                                    $eNewTimeMin    = 0
                                }                                                                                                                                                                               

                            calEvent.start  = new Date( $sNewYear , $sNewMonth , $sNewDay , $sNewTimeHour , $sNewTimeMin )
                            calEvent.end    = new Date( $eNewYear , $eNewMonth , $eNewDay , $eNewTimeHour , $eNewTimeMin )

                            sNewGetTime     = new Date( $sNewYear , $sNewMonth , $sNewDay)
                            eNewGetTime     = new Date( $eNewYear , $eNewMonth , $eNewDay)

                            if ( sNewGetTime.getTime() == eNewGetTime.getTime() ){ 
                                calEvent.allDay = false
                            }

                        }
                    }

                    var calevents = result;

                    // then, pass the CalEvent array to the callback
                    callback(calevents);

            });

}

看起来很复杂,但效果很好。如果您有任何问题,请问我......

答案 2 :(得分:0)

我也有这个问题,但我在php json中找到了一个更简单的解决方案,请尝试以下代码

$startdate='Nov 11 2009 10:10:00';

$enddate='Nov 11 2009 12:10:00';

然后在你的数组中

'start' => "$startdate",
'end' => "$enddate",

就是这样