我一直在使用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
}
不幸的是,当我添加时间时没有数据出现。我该如何解决?
答案 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)
$startdate='Nov 11 2009 10:10:00';
$enddate='Nov 11 2009 12:10:00';
然后在你的数组中
'start' => "$startdate",
'end' => "$enddate",
就是这样