123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Document</title>
- @yield('styles')
- </head>
- <body>
- <?php
- $date=date("Y-m-d");
- $sd = explode("-", $date);
- $year = $sd[0];
- $month = $sd[1];
- $day = $sd[2];
- // Вычисляем число дней в текущем месяце
- $dayofmonth = date('t',
- mktime(0, 0, 0, $month, 1, $year));
- //Готовим запрос к БД
- $todate = "$year-$month-$dayofmonth";
- $fromdate = "$year-$month-01";
- //$query = "SELECT date,enddate from sobytia WHERE startdate<='$todate' AND enddate>=$fromdate";
- //$res_db = $db->sql($query);
- //$d = array();$k=array();
- //for($i = 1; $i<=$dayofmonth; $i++){
- // $k[$i] = $i;
- //}
- //$i=0;
- //while ($a = mysqli_fetch_row($res_db))
- //{
- // //for($i = 1; $i<=$dayofmonth; $i++){
- // foreach ($k as $i)
- // { //Добавление 0 к дате
- // if($i<10) $cd = "$year-$month-0".$i; else $cd = "$year-$month-$i";
- // if ($cd >= $a[0] && $cd <= $a[1])
- // {
- // $d[$i] = $cd;
- // unset($k[$i]);
- // }
- // }
- //}
- // Счётчик для дней месяца
- $day_count = 1;
- // 1. Первая неделя
- $num = 0;
- for($i = 0; $i < 7; $i++)
- {
- // Вычисляем номер дня недели для числа
- $dayofweek = date('w',
- mktime(0, 0, 0, $month, $day_count, $year));
- // Приводим к числа к формату 1 - понедельник, ..., 6 - суббота
- $dayofweek = $dayofweek - 1;
- if($dayofweek == -1) $dayofweek = 6;
- if($dayofweek == $i)
- {
- // Если дни недели совпадают,
- // заполняем массив $week
- // числами месяца
- $week[$num][$i] = $day_count > 9 ? $day_count : '0'.$day_count;
- $day_count++;
- }
- else
- {
- $week[$num][$i] = "";
- }
- }
- // 2. Последующие недели месяца
- while(true)
- {
- $num++;
- for($i = 0; $i < 7; $i++)
- {
- $week[$num][$i] = $day_count > 9 ? $day_count : '0'.$day_count;
- $day_count++;
- // Если достигли конца месяца - выходим
- // из цикла
- if($day_count > $dayofmonth) break;
- }
- // Если достигли конца месяца - выходим
- // из цикла
- if($day_count > $dayofmonth) break;
- }
- // 3. Выводим содержимое массива $week
- // в виде календаря
- // Выводим таблицу
- echo '<table id="calendar">';
- //заголовок
- $rusdays = array('ПН','ВТ','СР','ЧТ','ПТ','СБ','ВС');
- $rusmonth = array('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
- echo '<thead>
- <tr>
- <td onclick="monthf(\'prev\');"><</td>
- <td colspan="5">'.$rusmonth[$month-1].', '.$year.'</td>
- <td onclick="monthf(\'next\');">></td>
- </tr>';
- echo '<tr>';
- foreach ($rusdays as $rusday){
- echo '<td>'.$rusday.'</td>';
- }
- echo '</tr>';
- echo '</thead>';
- //тело календаря
- for($i = 0; $i < count($week); $i++)
- {
- echo "<tr>";
- for($j = 0; $j < 7; $j++)
- {
- if(!empty($week[$i][$j]))
- {
- // Если имеем дело с выбраной датой подсвечиваем ee
- if($week[$i][$j]==$day)
- {
- echo '<td class="today">';
- }
- else
- {
- echo '<td>';
- }
- // Если запись в базе за текущую дату есть, делаем ссылку
- // if($d[$week[$i][$j]])
- // {
- echo '<a href="'.route('user.date', [$user->id, $year.'-'.$month.'-'.$week[$i][$j]]).'">'.$week[$i][$j].'</a>';
- // }
- // else
- // {
- // echo $week[$i][$j];
- // }
- echo '</td>';
- }
- else echo "<td> </td>";
- }
- echo "</tr>";
- }
- ?>
- @yield('map')
- <script>
- var mon = parseInt("<?php echo $month; ?>");
- console.log('sdfsdfsdfsdf', mon);
- var year = parseInt(<?php echo $year; ?>);
- function monthf(pn){
- if (pn == 'next'){
- mon++;
- }else if (pn == 'prev'){
- mon--;
- }else{
- alert('Неправильный параметр');
- return false;
- }
- if (mon > 12){
- year ++;
- mon = 1;
- }
- if (mon < 1){
- year --;
- mon = 12;
- }
- if ((mon < 10) && (mon >= 1)){
- mon = '0'+mon;
- }
- var nextDate = year+'-'+mon+'-00';
- // var ajaxaddr = "путь_к_текущему_скрипту?date='+nextDate;
- // var http = new XMLHttpRequest();
- // if (http) {
- // http.open('get', ajaxaddr);
- // http.onreadystatechange = function () {
- // if(http.readyState == 4){
- // if (http.status == 200) {
- // document.getElementById('calendar').innerHTML = http.responseText;
- // }
- // }
- // }
- // http.send(null);
- // }
- }
- </script>
- @yield('scripts')
- </body>
|