Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите с календарём

Сообщения:  [1-5] 

 
 автор: JIEXA   (01.05.2005 в 20:56)   письмо автору
 
   для: cheops   (01.05.2005 в 20:48)
 

Забыл убрать, просто я сначала сделал все нормально, потом увидел баг и сделал одинаковые цвета, чтобы перед посетитеями не позорится, а сегодня увидел, что показывается 1 мая как понедельник, а сегодня эе воскресенье.
Если цвета седалть разными, то при нажатии следующий месяц будет раскрашиваться понедельник и воскресенье. Мне бы как тут http://omut.ru сделать...

   
 
 автор: cheops   (01.05.2005 в 20:48)   письмо автору
 
   для: JIEXA   (01.05.2005 в 20:30)
 

Это вот с чем связано, у буржуев на Западе неделя начинается не с Понедельника как у нас, а с Воскресенья! Поэтому всё правильно, если верхнюю строчку поменять на Вс Пн Вт Ср Чт Пт Сб - всё будет правильно, не привычно, но правильно.

А выходные не подсвечиваются, так как у них цвета с буднями совпадают if($dayArray[weekday] == "Sunday" or $dayArray[weekday] == "Saturday") { $bgcolor='#ABCAE9'; } else { $bgcolor='#ABCAE9'; }

   
 
 автор: JIEXA   (01.05.2005 в 20:30)   письмо автору
 
   для: cheops   (01.05.2005 в 20:07)
 

неа, вот ты попробуй запусти его сейчас на компе у мебя он вообще выдаст не правильную дату :(.

   
 
 автор: cheops   (01.05.2005 в 20:07)   письмо автору
 
   для: JIEXA   (01.05.2005 в 13:02)
 

А вот это проверка
if($dayArray[weekday] == "Sunday" or $dayArray[weekday] == "Saturday") { $bgcolor='#ABCAE9'; } else { $bgcolor='#ABCAE9'; }

не срабатывает?

   
 
 автор: JIEXA   (01.05.2005 в 13:02)   письмо автору
 
 

Помогите подправить код календаря, так чтобы подсвечивались выходные.
<?php
define
("ADAY", (60*60*24));
// $eDate содержит в себе 1 или 0.
// 0 - это значит надо выводить текущую дату
// 1 - это значит пользователь нажал на прокрутку месяца вперед или назад, значит надо выводить календарь за определенный месяц
global $eDate, $darr;
$months = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
if(
$eDate != "1")
{
        
// Это генерация настоящий даты
        
$nowArray = getdate();
        
$month = $nowArray[mon];
        
$year = $nowArray[year];
        
$start = mktime(0, 0, 0, $month, 1, $year);
        
$firstDayArray = getdate($start);
        if(
$firstDayArray['mon']-1 == 0)
        {
                
$prevmes = '1'.'.12.'.($firstDayArray['year']-1).'/';
        }
        else
        {
                
$prevmes = '1'.'.'.( $firstDayArray['mon']-1).'.'.$firstDayArray['year'].'/';
        }
        if(
$firstDayArray['mon']+1 == 13)
        {
                
$nextmes = '1'.'.1.'.($firstDayArray['year']+1).'/';
        }
        else
        {
                
$nextmes = '1'.'.'.($firstDayArray['mon']+1).'.'.$firstDayArray['year'].'/';
        }
        
$monthe = date(m) - 1;
        
$myear = date("Y год");
        
$den = $nowArray[mday];
}
else
{
        
// Это за $darr дату
        // $darr['0'] - число
        // $darr['1'] - месяц
        // $darr['2'] - год
        
$mes = $darr['1']-1;
        
$month = $darr['1'];
        
$den = $darr['0'];
        
$year = $darr['2'];
        
$start = mktime(0, 0, 0, $darr['1'], 1, $year);
        
$firstDayArray = getdate($start);
        if(
$firstDayArray['mon']-1 == 0)
        {
                
$prevmes = '1'.'.12.'.($firstDayArray['year']-1).'/';
        }
        else
        {
                
$prevmes = '1'.'.'.( $firstDayArray['mon']-1).'.'.$firstDayArray['year'].'/';
        }
        if(
$firstDayArray['mon']+1 == 13)
        {
                
$nextmes = '1'.'.1.'.($firstDayArray['year']+1).'/';
        }
        else
        {
                
$nextmes = '1'.'.'.($firstDayArray['mon']+1).'.'.$firstDayArray['year'].'/';
        }
        
$myear = $months[$mes]." ".$year." год";
}

print 
"<table width='160' cellspacing='1' cellpadding='2' border='0'>
<td width='10%' align='right'><a href='/news/"
.$prevmes."'>««</a></td>
<td width='80%' colspan='5' align='center'>"
.$myear."</td>
<td width='10%' align='left'><a href='/news/"
.$nextmes."'>»»</a></td>
<tr class='cal'>
<td width='14%' align='center'>Пн</td><td width='14%' align='center'>Вт</td><td width='14%' align='center'>Ср</td><td width='14%' align='center'>Чт</td><td width='14%' align='center'>Пт</td><td width='14%' align='center'>Сб</td><td width='14%' align='center'>Вс</td>
</tr>
<tr>\n"
;
$i = 0;
for(
$count=1;$count < (6*7);$count++)
{
        
$dayArray = getdate($start);
        if(((
$count) % 7) == 1)
        {
                if(
$i == 1)
                {
                if(
$dayArray[mon] != $month) break;
                print 
"</tr><tr>\n";
                }
                
$i = 1;
        }
        if(
$count < $firstDayArray[wday] || $dayArray[mon] != $month)
        {
                print 
"\t<td bgcolor='#E9EFF5'></td>\n";
        }
        elseif((
$dayArray[mday] > date("j") and $month == date("n")) or ($dayArray[mon] > date("n") and ($year == date("Y"))) or ($year > date("Y")))
        {
                if(
$dayArray[weekday] == "Sunday" or $dayArray[weekday] == "Saturday") { $bgcolor='#ABCAE9'; } else { $bgcolor='#ABCAE9'; }
                print 
"<td width='14%' bgcolor='".$bgcolor."' align='center' onmouseover=\"this.style.backgroundColor='#E9EFF5'\" onmouseout=\"this.style.backgroundColor=''\">".$dayArray['mday']."</td>\n";
                
$start += ADAY;
        }
        else
        {
                if(
$dayArray[weekday] == "Sunday" or $dayArray[weekday] == "Saturday") { $bgcolor='#ABCAE9'; } else { $bgcolor='#ABCAE9'; }
                if(
$den == $dayArray[mday]) { $bgcolor='#E9EFF5'; }
                print 
"<td bgcolor='".$bgcolor."' width='14%' align='center' onmouseover=\"this.style.backgroundColor='#E9EFF5'\" onmouseout=\"this.style.backgroundColor=''\"><a href='/news/".$dayArray[mday].".".$dayArray[mon].".".$dayArray[year]."/'>".$dayArray['mday']."</a></td>\n";
                
$start += ADAY;
        }
}
print = 
"</table>";
?>

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования