http://arshaw.com/fullcalendar/のFullcalendar を使用しています。検索スタックオーバーフローがありますが、問題に適合する回答がないか、理解できませんでした。これがすでに回答されている場合は、リンクを貼り付けてください。
イベントを返す xml ファイルがあります。
イベントの例:
<event allDay="false" editable="true" end="Mon Apr 29 2013 15:30:00 GMT+0100" id="53" start="Mon Apr 29 2013 08:30:00 GMT+0100" title="tesete"/>
開始日と終了日に気が付くと、時間形式はこのように保存されていました。
次のようにイベントをフェッチすると:
events: function(start, end, callback) {
$.ajax({
type: 'POST',
url: url,
dataType:'xml',
crossDomain: true,
data: {
// our hypothetical feed requires UNIX timestamps
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000),
'ajax':true,
'acc':'2',
},
success: function(doc) {
var events = [];
$(doc).find('event').each(function()
{
events.push({
id: $(this).attr('id'),
title: $(this).attr('title'),
start: $(this).attr('start'),
end: $(this).attr('end'),
allDay: $(this).attr('allDay'),
editable: $(this).attr('editable')
});
});
callback(events);
}
});
},
すべてのイベントは月ビューに正しく表示されますが、アジェンダ ビューまたはデイ ビューに切り替えると、イベントは allDay バーにのみ表示され、特定の時間の間はレンダリングされません。
start="Mon Apr 29 2013 08:30:00 GMT+0100" end="Mon Apr 29 2013 15:30:00 GMT+0100" id="53"
たとえば、8:30 から 15:30 まで
私は何が欠けていますか?
問題の解決策:
events: function(start, end, callback) {
$.ajax({
type: 'POST',
url: 'myurl',
dataType:'xml',
crossDomain: true,
data: {
// our hypothetical feed requires UNIX timestamps
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000),
'ajax':true,
'acc':'2',
},
success: function(doc) {
var events = [];
var allday = null; //Workaround
$(doc).find('event').each(function()
{
if($(this).attr('allDay') == "false") //Workaround
allday = false; //Workaround
if($(this).attr('allDay') == "true") //Workaround
allday = true; //Workaround
events.push({
id: $(this).attr('id'),
title: $(this).attr('title'),
start: $(this).attr('start'),
end: $(this).attr('end'),
allDay: allday,
editable: $(this).attr('editable')
});
});
callback(events);
}
});
},