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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: По календарю из загрузок сайта
 
 автор: buro   (03.11.2007 в 16:06)   письмо автору
 
 

$dayofweek = date('w', mktime(0, 0, 0, date('m'), $day_count, date('Y')));

для чего ну на эта строка? никак не разберусь нельзя просто сделать date('w') ?

   
 
 автор: sim5   (03.11.2007 в 16:35)   письмо автору
 
   для: buro   (03.11.2007 в 16:06)
 

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

   
 
 автор: buro   (04.11.2007 в 05:55)   письмо автору
 
   для: sim5   (03.11.2007 в 16:35)
 

ок. спасибо. понял в чём суть... :)
Народ, я тут подредактировал для своих нужд скрипт этого календаря. вот что вышло. Нормально так с точки зрения профессионалов?
может кому пригодится.

есть переход по месяцам и по годам


 <?php

//год
$year=intval($_GET["year"]);
if(empty(
$year) or $year>2037)
{
$year=date('Y');}

//месяц
$month=intval($_GET["month"]);
if (empty(
$month) or $month>12 or $month<1)
{
$month=date('m');}

// Вычисляем число дней в текущем месяце
$dayofmonth date('t'mktime(000$month"1"$year));

  
// Счётчик для дней месяца
  
$day_count 1;

  
// 1. Первая неделя
  
$num 0;
  for(
$i 0$i 7$i++)
  {
    
// Вычисляем номер дня недели для числа
    
$dayofweek date('w'mktime(000$month$day_count$year));
    
// Приводим к числа к формату 1 - понедельник, ..., 6 - суббота
    
$dayofweek $dayofweek 1;
    if(
$dayofweek == -1$dayofweek 6;

    if(
$dayofweek == $i)
    {
      
// Если дни недели совпадают,
      // заполняем массив $week
      // числами месяца
      
$week[$num][$i] = $day_count;
      
$day_count++;
    }
    else
    {
      
$week[$num][$i] = "";
    }
  }

  
// 2. Последующие недели месяца
  
while(true)
  {
    
$num++;
    for(
$i 0$i 7$i++)
    {
      
$week[$num][$i] = $day_count;
      
$day_count++;
      
// Если достигли конца месяца - выходим
      // из цикла
      
if($day_count $dayofmonth) break;
    }
    
// Если достигли конца месяца - выходим
    // из цикла
    
if($day_count $dayofmonth) break;
  }
if(
$month == "1" ){$month_ru="Январь";} 
elseif(
$month == "2" ){$month_ru="Февраль";} 
elseif(
$month == "3" ){$month_ru="Март";} 
elseif(
$month == "4" ){$month_ru="Апрель";} 
elseif(
$month == "5" ){$month_ru="Май";} 
elseif(
$month == "6" ){$month_ru="Июнь";} 
elseif(
$month == "7" ){$month_ru="Июль";} 
elseif(
$month == "8" ){$month_ru="Август";} 
elseif(
$month == "9" ){$month_ru="Сентябрь";} 
elseif(
$month == "10"){$month_ru="Октябрь";} 
elseif(
$month == "11"){$month_ru="Ноябрь";} 
elseif(
$month == "12"){$month_ru="Декабрь";} 
  
// 3. Выводим содержимое массива $week
  // в виде календаря
  // Выводим таблицу
if ($month=="1")
    {
    
$pyear=intval($year-1);
    
$pmonth="12";
    
$nyear=intval($year);
    
$nmonth=intval($month+1);
    }
else if (
$month>"1" or $month<"12" )
    {    
    
$pyear=intval($year);
    
$pmonth=intval($month-1);
    
$nyear=intval($year);
    
$nmonth=intval($month+1);
    }
     if (
$month=="12" )
    {    
    
$pyear=intval($year);
    
$pmonth=intval($month-1);
    
$nyear=intval($year+1);
    
$nmonth="1";
    }

  echo
"<table><tr align=center><td><b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".$pyear."&month=".$pmonth."'>&lt;&lt;</a><b> ".$month_ru." <b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".$nyear."&month=".$nmonth."'>&gt;&gt;</a><b></td></tr><tr><td>";
  
  echo 
"<table border=1><tr align=center><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс</tr>";
  for(
$i 0$i count($week); $i++)
  {
    echo 
"<tr align=center>";
    for(
$j 0$j 7$j++)
    {
      if(!empty(
$week[$i][$j]))
      { if (
$week[$i][$j]==date(d) && $month==date(m) && $year==date(Y))
      {
$week[$i][$j]="<b>".$week[$i][$j]."</b>";}
        
// Если имеем дело с субботой и воскресенья
        // подсвечиваем их
        
if($j == || $j == 6
             echo 
"<td><font color=red>".$week[$i][$j]."</font></td>";
        else echo 
"<td >".$week[$i][$j]."</td>";
      }
      else echo 
"<td>&nbsp;</td>";
    }
    echo 
"</tr>";
  } 
  echo 
"</table>";
   echo 
"</td></tr><tr align=center><td><b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".intval($year-1)."'>&lt;&lt;</a></b> ".$year." <b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".intval($year+1)."'>&gt;&gt;</a><b></td></tr></table>";
?>

   
 
 автор: sim5   (04.11.2007 в 06:17)   письмо автору
 
   для: buro   (04.11.2007 в 05:55)
 


<?
$month_ru 
= array(=> "Январь","Февраль","Март",....);
$month $month_ru[$month]; 

   
 
 автор: buro   (04.11.2007 в 08:40)   письмо автору
 
   для: sim5   (04.11.2007 в 06:17)
 


 <?php
//год
$year=intval($_GET["year"]);
if(empty(
$year) or $year>2037)
{
$year=date('Y');}

//месяц
$month=intval($_GET["month"]);
if (empty(
$month) or $month>12 or $month<1)
{
$month=date('m');}

// Вычисляем число дней в текущем месяце
$dayofmonth date('t'mktime(000$month"1"$year));

  
// Счётчик для дней месяца
  
$day_count 1;

  
// 1. Первая неделя
  
$num 0;
  for(
$i 0$i 7$i++)
  {
    
// Вычисляем номер дня недели для числа
    
$dayofweek date('w'mktime(000$month$day_count$year));
    
// Приводим к числа к формату 1 - понедельник, ..., 6 - суббота
    
$dayofweek $dayofweek 1;
    if(
$dayofweek == -1$dayofweek 6;

    if(
$dayofweek == $i)
    {
      
// Если дни недели совпадают,
      // заполняем массив $week
      // числами месяца
      
$week[$num][$i] = $day_count;
      
$day_count++;
    }
    else
    {
      
$week[$num][$i] = "";
    }
  }

  
// 2. Последующие недели месяца
  
while(true)
  {
    
$num++;
    for(
$i 0$i 7$i++)
    {
      
$week[$num][$i] = $day_count;
      
$day_count++;
      
// Если достигли конца месяца - выходим
      // из цикла
      
if($day_count $dayofmonth) break;
    }
    
// Если достигли конца месяца - выходим
    // из цикла
    
if($day_count $dayofmonth) break;
  }
  
//забиваем названия каждого месяца в массив
  
$month_ru = array(=> "Январь",=> "Февраль",=> "Март",=> "Апрель",=> "Май"=> "Июнь",=> "Июль",=> "Август",=> "Сентябрь",10 => "Октябрь",11 => "Ноябрь",12 => "Декабрь"); 
  
// 3. Выводим содержимое массива $week
  // в виде календаря
  // Выводим таблицу
if ($month=="1")
    {
    
$pyear=intval($year-1);
    
$pmonth="12";
    
$nyear=intval($year);
    
$nmonth=intval($month+1);
    }
else if (
$month>"1" or $month<"12" )
    {    
    
$pyear=intval($year);
    
$pmonth=intval($month-1);
    
$nyear=intval($year);
    
$nmonth=intval($month+1);
    }
     if (
$month=="12" )
    {    
    
$pyear=intval($year);
    
$pmonth=intval($month-1);
    
$nyear=intval($year+1);
    
$nmonth="1";
    }

  echo
"<table><tr align=center><td><b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".$pyear."&month=".$pmonth."'>&lt;&lt;</a><b> ".$month_ru[$month]." <b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".$nyear."&month=".$nmonth."'>&gt;&gt;</a><b></td></tr><tr><td>";
  
  echo 
"<table border=1><tr align=center><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс</tr>";
  for(
$i 0$i count($week); $i++)
  {
    echo 
"<tr align=center>";
    for(
$j 0$j 7$j++)
    {
      if(!empty(
$week[$i][$j]))
      { if (
$week[$i][$j]==date(d) && $month==date(m) && $year==date(Y))
      {
$week[$i][$j]="<b>".$week[$i][$j]."</b>";}
        
// Если имеем дело с субботой и воскресенья
        // подсвечиваем их
        
if($j == || $j == 6
             echo 
"<td><font color=red>".$week[$i][$j]."</font></td>";
        else echo 
"<td >".$week[$i][$j]."</td>";
      }
      else echo 
"<td>&nbsp;</td>";
    }
    echo 
"</tr>";
  } 
  echo 
"</table>";
   echo 
"</td></tr><tr align=center><td><b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".intval($year-1)."'>&lt;&lt;</a></b> ".$year." <b><a style='text-decoration:none;' href='".$_SERVER['PHP_SELF']."?year=".intval($year+1)."'>&gt;&gt;</a><b></td></tr></table>";
?>



конечный вариант

   
Rambler's Top100
вверх

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