Помощник
|
Календарь |
kilogram
|
Сообщение
#1
|
||
|
|
||
|
|||
kilogram
|
Сообщение
#2
|
|
Я так понял из-за вот этого места может for($j = 0; $j < 6; $j++){
Если написать там for($j = 0; $j < 5; $j++){ тогда выведет без ошибки, но выведет не все рабочие дни этого месяца. |
|
|
Muxa_hb |
1.6.2012, 0:17;
Ответить: Muxa_hb
Сообщение
#3
|
|
потому что последнее значение - не массив а строка.
перед вторым значением напишите [PHP]var_dump($row); echo "<br>".var_dump(is_array($row));[/PHP] увидите, что последний индекс - строковый ( не массив). |
|
|
kilogram
|
Сообщение
#4
|
|
Если изменить эту строку на такую
} else{ $row = array(); } ошибок нет, но и вывод не все 31 числа, а только 29 |
|
|
Arks |
1.6.2012, 0:56;
Ответить: Arks
Сообщение
#5
|
|
|
|
|
kilogram
|
Сообщение
#6
|
|
Вот взял исходник, нашел папку этого календаря и выдает что 1 июня это воскресенье, что за бред? Автор книги ошибся что ли?
Что может не правильно быть в коде, как-то странно. Вот оригинал автора с книги. Вот на сервер http://santa.comoj.com/ [php]<?php ## Календарь на текущий месяц. // Функция формирует двумерный массив, представляющий собой // календарь на указанный месяц и год. Массив состоит из строк, // соответствующих неделям. Каждая строка - массив из семи // элементов, которые равны числам (или пустой строке, если // данная клетка календаря пуста). function makeCal($year, $month) { // Получаем номер дня недели для 1 числа месяца. Корректируем // его, чтобы воскресенье соответствовало числу 7, а не числу 0. $wday = JDDayOfWeek(GregorianToJD($month, 1, $year), 0); if ($wday == 0) $wday = 7; // Начинаем с этого числа в месяце (если меньше нуля // или больше длины месяца, тогда в календаре будет пропуск). $n = - ($wday - 2); $cal = array(); // Цикл по строкам. for ($y=0; $y<6; $y++) { // Будущая строка. Вначале пуста. $row = array(); $notEmpty = false; // Цикл внутри строки по дням недели. for ($x=0; $x<7; $x++, $n++) { // Текущее число >0 и < длины месяца? if (checkdate($month, $n, $year)) { // Да. Заполняем клетку. $row[] = $n; $notEmpty = true; } else { // Нет. Клетка пуста. $row[] = ""; } } // Если в данной строке нет ни одного непустого элемента, // значит, месяц кончился. if (!$notEmpty) break; // Добавляем строку в массив. $cal[] = $row; } return $cal; } // Формируем календарь на текущий месяц. $now = getdate(); $cal = makeCal($now['year'], $now['mon']-1); ?> <!-- Шаблон вывода календаря. --> <table border=1> <tr> <td>Пн</td> <td>Вт</td> <td>Ср</td> <td>Чт</td> <td>Пт</td> <td>Сб</td> <td style="color:red">Вс</td> </tr> <!-- цикл по строкам --> <?foreach ($cal as $row) {?> <tr> <!-- цикл по столбам --> <?foreach ($row as $i=>$v) {?> <!-- воскресенье - "красный" день --> <td style="<?=$i==6? 'color:red' : ''?>"> <?=$v? $v : " "?> </td> <?}?> </tr> <?}?> </table> [/php] |
|
|
kilogram
|
Сообщение
#7
|
|
Вроде работает, не совсем въехал в эту строку, объясните её если кто может.
[PHP] $wday = JDDayOfWeek(GregorianToJD($month, 1, $year), 0);[/PHP] |
|
|
cyber_ua |
1.6.2012, 21:56;
Ответить: cyber_ua
Сообщение
#8
|
|
|
|
|
Zippovich |
1.6.2012, 21:58;
Ответить: Zippovich
Сообщение
#9
|
|
он ее создал
|
|
|
Arks |
1.6.2012, 22:38;
Ответить: Arks
Сообщение
#10
|
|
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Недельный календарь (html+css), js с меня | 0 | eugen35 | 3687 | 18.9.2014, 6:35 автор: -eugen35- |
|
календарь GuruTrade: гарант брокерского анализа.. | 0 | adviser.co | 2294 | 21.5.2014, 22:56 автор: -adviser.co- |
|
Нужен календарь для сайта | 0 | ladushky | 2821 | 2.6.2013, 5:59 автор: -ladushky- |
|
"Календарь событий" для InstantCMS. За оплату! | 0 | Ald_TLT | 4840 | 6.7.2011, 16:05 автор: -Ald_TLT- |
Текстовая версия | Сейчас: 24.4.2024, 14:35 |