jQuery Weekcalendarを使用していますが、静的データの代わりに、データベースのデータを使用したいと考えています。以下のスクリプトはeventData1
、カレンダーのすべての予定を含む変数を作成します。下から出力を手作業で貼り付けると、すべて正常に動作します。変数を介して追加すると、次のエラーメッセージが表示されてクラッシュします。
Uncaught TypeError: Cannot call method 'getTime' of undefined
したがって、日付を新しいDateオブジェクトに変換することはできないと思います。そのため、文字列を日付に変換する別の関数を使用しようとしましたが、成功しませんでした。
events : [{'id': 25, 'start': new Date( '2013-01-07 14:45:00'), 'end': new Date('2013-01-07 15:45:00'), 'title': 'test appointment from javascript', userId: 0},{'id': 26, 'start': new Date( '2013-01-10 11:15:00'), 'end': new Date('2013-01-10 12:15:00'), 'title': 'test appointment from javascript', userId: 0},{'id': 22, 'start': new Date( '2013-01-09 12:45:00'), 'end': new Date('2013-01-09 14:45:00'), 'title': 'test appointment from javascript', userId: 0},{'id': 21, 'start': new Date( '2013-01-09 15:00:00'), 'end': new Date('2013-01-09 17:00:00'), 'title': 'test appointment from javascript', userId: 0},{'id': 20, 'start': new Date( '2013-01-08 16:00:00'), 'end': new Date('2013-01-08 17:00:00'), 'title': 'test appointment from javascript', userId: 0},{'id': 27, 'start': new Date( '2013-01-10 15:45:00'), 'end': new Date('2013-01-10 16:45:00'), 'title': 'test appointment from javascript', userId: 0}]
これは私のJavaScriptです:
<script type="text/javascript">
function dateReviver(value) {
if (typeof value === 'string') {
var re = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/
var result = re.exec(value);
if (result) {
return new Date(Date.UTC(+result[1], +result[2] - 1, +result[3], +result[4],+result[5], +result[6]));
}
}
return value;
}
var appointments = "[";
var eventData1 = new Array();
var counter = 0;
$.ajax({
url: 'http://www.slinder.ch/admin/php/termin_getappointments.php',
dataType: 'json',
async: false,
success: function(data) {
console.log('entered getJSON()');
console.log(data);
$.each(data, function(i, appointment) {
var id = appointment.appointmentId;
var start = appointment.start;
var end = appointment.end;
var title = appointment.prename;
var userid = appointment.workerid;
appointments += "{'id': " + id + ", 'start': new Date( '" + start + "'), 'end': new Date('" + end + "'), 'title': 'test appointment from javascript', userId: 0}";
console.log(start);
console.log(end);
if (i === (data.length - 1)) {
// this is the last
} else {
appointments += ",";
}
counter++;
});
appointments += "]";
console.log('first: ' + appointments);
eventData1 = {
options: {
timeslotsPerHour: 4,
timeslotHeight: 20,
defaultFreeBusy: {free: true}
},
events : appointments,
freebusys: []
};
}
});
</script>
このような予定を使用するには、何を変更する必要があるかを誰かに教えてもらえますか?
events : appointments,
SOについても同様の質問がありますが、承認された回答はありません。