・全ての時間枠に「予約可[改行]◎」と表示させたいです。
(可能なら30分単位。「終日」の箇所にも表示させたいです。)
予定タイトルに改行は含められないようで、\n
などを書いても取り除かれてしまう。
後はできているかな。
Python
1document.addEventListener('DOMContentLoaded', function () {
2 var calendarEl = document.getElementById('calendar');
3
4 var eventsArray = (function () {
5 var startTime = new Date(new Date().setHours(9, 0, 0, 0));
6 var endTime = new Date(new Date().setHours(9, 30, 0, 0));
7
8 var recurDate = new Date();
9 var startRecur = `${recurDate.getFullYear()}-${('0' + (recurDate.getMonth() + 1)).slice(-2)}-${('0' + recurDate.getDate()).slice(-2)}`;
10 recurDate.setDate(recurDate.getDate() + 14); // 予約可能な日数
11 var endRecur = `${recurDate.getFullYear()}-${('0' + (recurDate.getMonth() + 1)).slice(-2)}-${('0' + recurDate.getDate()).slice(-2)}`;
12
13 arr = []
14 // 終日
15 arr.push({
16 // daysOfWeek: [1, 2, 3, 4, 5], // 月曜から金曜までにするなら
17 allDay: true,
18 title: '予約可 ◎',
19 startRecur: startRecur,
20 endRecur: endRecur,
21 textColor: 'black',
22 color: 'transparent'
23 });
24 // 各時間
25 while (startTime.getHours() < 22) {
26 arr.push({
27 // daysOfWeek: [1, 2, 3, 4, 5], // 月曜から金曜までにするなら
28 title: '予約可 ◎',
29 startTime: startTime.toLocaleTimeString(),
30 endTime: endTime.toLocaleTimeString(),
31 startRecur: startRecur,
32 endRecur: endRecur,
33 textColor: 'black',
34 color: 'transparent'
35 });
36 startTime.setMinutes(startTime.getMinutes() + 30);
37 endTime.setMinutes(endTime.getMinutes() + 30);
38 }
39 console.log(arr);
40 return arr;
41 })();
42
43 var calendar = new FullCalendar.Calendar(calendarEl, {
44 locale: 'ja',
45 headerToolbar: {
46 left: 'prev,next today',
47 center: 'title',
48 right: 'timeGridWeek'
49 },
50 initialView: 'timeGridWeek',
51 firstDay: (new Date()).getDay(),
52 validRange: {
53 start: new Date()
54 },
55 slotLabelFormat: {
56 hour: 'numeric',
57 minute: '2-digit',
58 omitZeroMinute: false
59 },
60 displayEventTime: false,
61 displayEventEnd: false,
62 businessHours: true,
63 editable: true,
64 selectable: true,
65 slotMinTime: '09:00:00',
66 slotMaxTime: '22:00:00',
67 slotDuration: '00:15:00',
68 slotLabelInterval: '00:30',
69 events: eventsArray
70 });
71
72 calendar.render();
73});