NodeJSとFullCalendarでカレンダーをつくる
いろいろな用途がありそうなカレンダーをつくります。
サンプルのURL
完成イメージ
プログラム
index.ejs
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.css' rel='stylesheet' /> <link href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.print.min.css' rel='stylesheet' media='print' /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.js"></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/locale/ja.js'></script> <style type="text/css"> /* 日曜日 */ .fc-sun { color: red; background-color: #fff0f0; } /* 土曜日 */ .fc-sat { color: blue; background-color: #f0f0ff; } </style> <title>カレンダー</title> </head> <body> <div class="container" style="padding: 1.25rem;"> <div class="card"> <h5 class="card-header">カレンダー</h5> <div class="card-body"> <div id="calendar"></div> </div> </div> </div> </div> </body> <script> $(document).ready(function() { $('#calendar').fullCalendar({ events:[{start: '2019-12-10', rendering: 'background', color: '#ffd0d0'}, {start: '2019-12-10', title:'定休日', color: '#ffd0d0'}], editable: false }); $('.fc-day-top[data-date="2019-12-10"] .fc-day-number').css({'color': 'red'}); }); </script> </html>
休日は自分で設定してあげる必要があります。
app.js
var express = require('express'); var app = express(); // EJS設定 app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); // トップページ app.get('/', function (req, res) { res.render('index', {}); }); app.listen(3000, function () { });
これは定番なので、大丈夫ですね。
Node.jsは今回の内容とはあまり関係ないですね。
イベントを後から追加するとき
$('#calendar').fullCalendar('addEventSource', [{ id: 12345, title: "追加したイベント", start: "2019-12-30", allDay: true }]);
こんな感じで追加できます。
idは何かセットしないといけないみたいです。
まとめ
カレンダーを簡単に作ることができました。