TP5.1 使用 fullcalendar日历插件
html
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset='utf-8'/> 5 <link href='__ADMIN__/lib/main.css' rel='stylesheet'/> 6 <link rel="stylesheet" href="__ADMIN__/layui/css/layui.css" media="all"> 7 <script src='__ADMIN__/lib/main.js'></script> 8 <script src="__ADMIN__/lib/locales/zh-cn.js"></script> 9 <script src="__ADMIN__/layui/layui.js" charset="utf-8"></script> 10 <script> 11 12 document.addEventListener('DOMContentLoaded', function () { 13 var calendarEl = document.getElementById('calendar'); 14 layui.use(['table', 'laydate'], function () { 15 var $ = layui.$, laydate = layui.laydate; 16 laydate.render({ 17 elem: '#tag' //指定元素 18 }); 19 var calendar = new FullCalendar.Calendar(calendarEl, { 20 headerToolbar: { 21 left: 'prev,next today prevYear,nextYear', 22 center: 'title', 23 right: 'dayGridMonth,timeGridDay,listMonth' 24 }, 25 timezone: 'Asia/Shanghai', 26 locale: 'zh-cn', 27 navLinks: true, // can click day/week names to navigate views 28 businessHours: true, // display business hours 29 allDayText: '全天', //日历上显示全天的文本 30 selectable: true, 31 editable: false, 32 dayMaxEventRows: true, // 限制条数 33 loading: function (isLoading, view) { 34 var load = ""; 35 if (isLoading) { 36 load = layer.load(1); 37 } 38 layer.close(load); 39 }, 40 events: { 41 url: '{:url("admin/Calendar/getCalendar")}', 42 method: 'get', 43 failure: function (res) { 44 console.log(res); 45 alert('there was an error while fetching events!'); 46 }, 47 color: '#9ACD32', // a non-ajax option 48 textColor: 'black' // a non-ajax option 49 }, 50 51 navLinkDayClick: function (date, jsEvent) { 52 console.log(date); 53 window.open('{:url("admin/Calendar/groupDirInfo")}?date=' + set_time(Date.parse(date) / 1000)); 54 } 55 }); 56 calendar.render(); 57 58 }); 59 60 }); 61 62 function set_time(str) { 63 var n = parseInt(str) * 1000; 64 var D = new Date(n); 65 var year = D.getFullYear();//四位数年份 66 67 var month = D.getMonth() + 1;//月份(0-11),0为一月份 68 month = month < 10 ? ('0' + month) : month; 69 70 var day = D.getDate();//月的某一天(1-31) 71 day = day < 10 ? ('0' + day) : day; 72 73 var hours = D.getHours();//小时(0-23) 74 hours = hours < 10 ? ('0' + hours) : hours; 75 76 var minutes = D.getMinutes();//分钟(0-59) 77 minutes = minutes < 10 ? ('0' + minutes) : minutes; 78 79 // var seconds = D.getSeconds();//秒(0-59) 80 // seconds = seconds<10?('0'+seconds):seconds; 81 // var week = D.getDay();//周几(0-6),0为周日 82 // var weekArr = ['周日','周一','周二','周三','周四','周五','周六']; 83 84 var now_time = year + '-' + month + '-' + day; 85 return now_time; 86 } 87 </script> 88 <style> 89 90 body { 91 margin: 10px 10px; 92 padding: 0; 93 font-family: Arial, Helvetica Neue, Helvetica, sans-serif; 94 font-size: 14px; 95 } 96 97 #calendar { 98 max-width: 1500px; 99 margin: 0 auto; 100 } 101 102 .demoTable { 103 margin-bottom: 20px; 104 } 105 </style> 106 </head> 107 <body> 108 109 <div style="padding: 20px; background-color: #F2F2F2;"> 110 <div class="layui-row layui-col-space15"> 111 <div class="layui-col-md12"> 112 <div class="layui-card"> 113 <div class="layui-card-body"> 114 <div class="layui-inline"> 115 <input class="layui-input" name="usernName" id="usernName" placeholder="姓名" autocomplete="off"> 116 </div> 117 <div class="layui-inline"> 118 <input class="layui-input" name="tag" placeholder="开始时间" id="tag"> 119 </div> 120 121 <button class="layui-btn" id="seach">搜索</button> 122 </div> 123 </div> 124 </div> 125 </div> 126 </div> 127 128 129 <div id='calendar'></div> 130 131 </body> 132 </html>
php
public function getCalendar(Request $request)
{
$start = $request->get('start');
$end = $request->get('end');
$groupDir = GGroupDir::models()->getGroupDirByInterval($start, $end);
$returnArr = [];
foreach ($groupDir as $k => $v) {
$returnArr[$k] = [
"id" => $v['dirid'],
"title" => $v['title'],
"start" => $v['stime'] * 1000, // UNIX时间戳
"end" => $v['etime'] * 1000,
];
}
return returnArr;
}
model
/**
* 时间区间查询
* @param $start
* @param $end
* @return mixed
*/
public function getGroupDirByInterval($start, $end)
{
return self::field("dirid,title,stime,etime")
->where("stime", ">=", strtotime($start))
->where("etime", "<=", strtotime($end))
->where("stime", "<>", "0")
->where("etime", "<>", "0")
->all()
->toArray();
}

浙公网安备 33010602011771号