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

Форум PHP

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

 

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

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

тема: Календарь новостей
 
 автор: kis-kis   (02.05.2007 в 21:41)   письмо автору
 
 

Есть календарь новостей (вложение).

Формат месяца в навигации:

$month = date("m",time());
m - месяц с ведущим нулем

А при проверке месяц имеет формат - n, т.е. без ведущих нулей, в следствии этого некорректная работа...

В чем может быть ошибка?
Спасибо.))

   
 
 автор: cheops   (02.05.2007 в 23:33)   письмо автору
 
   для: kis-kis   (02.05.2007 в 21:41)
 

В строковом контексте, при передаче месяца методом GET ведущие нули убираются автоматически.

   
 
 автор: kis-kis   (03.05.2007 в 09:43)   письмо автору
 
   для: cheops   (02.05.2007 в 23:33)
 

Тогда почему дни не обрезаются?


$today = date("d", time());

Спасибо.

   
 
 автор: kis-kis   (03.05.2007 в 11:33)   письмо автору
 
   для: kis-kis   (03.05.2007 в 09:43)
 

Спасибо. Исправил, все работает.
Но теперь другая ошибка, все работает отлично при просмотре прошлого месяца (дни с новостями отображаются), а в текущем месяце нет..)) В чем причина ошибки?
Спасибо.
Вот код:


<?php

include "inc/s.inc.php"

function 
rus_format($denned)
{
if(
$denned==0$denned=7;
return 
$denned;
}

$month = (isset($month)) ? $month date("m",time());
$year  = (isset($year)) ? $year date("Y",time());

$daylong   date("l",mktime(1,1,1,$month,$today,$year)); //день недели текст англ.
$monthlong date("F",mktime(1,1,1,$month,$today,$year)); //название месяца англ.
$dayone    date("w",mktime(1,1,1,$month,1,$year)); //день недели цифрой
$numdays   date("t",mktime(1,1,1,$month,1,$year)); //количество дней в месяце

$alldays   = array('Пн','Вт','Ср','Чт','Пт','<font color=#804040>Сб</font>','<font color=#804040>Вс</font>');

$next_month mktime(000, ($month+1), 7$year);
$last_month mktime(000, ($month-1), 7$year);

if (
$today $numdays) { $today--; }
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="Декабрь";}

echo 
"<table border=0 cellpadding=4 cellspacing=1 width=100%>";

//выводим название месяца

echo "<table border=0 cellpadding=4 cellspacing=1 width=100%>";
echo 
"<tr bgcolor=#E7EBEF><td align=center><a href=".$PHP_SELF."?year=".date('Y'$last_month)."&month=".date("m"$last_month)." title='Предыдущий месяц'>&laquo;</a></td>";
echo 
"<td width=100% colspan=\"5\" valign=\"middle\" align=\"center\"><b>".$month_ru." ".$year." г.</b></td>";
echo 
"<td align=center><a href=".$PHP_SELF."?year=".date('Y'$next_month)."&month=".date('m'$next_month)." title='Следующий месяц'>&raquo;</a></td>";
echo 
"</tr></table>";

$denned1day rus_format(date("w",mktime(1,1,1,$month,1,$year)));
$dennedNOWday rus_format(date("w",mktime(1,1,1,$month,$today,$year)));
$dennedLASTday rus_format(date("w",mktime(1,1,1,$month,$numdays,$year)));

$num_of_zero_days $dennedLASTday;

$days=array();

echo 
"<table border=0 cellpadding=3 cellspacing=3 width=100%><tr>";

//выводим дни недели
foreach($alldays as $value
{
echo 
"<td valign=middle align=center>
        <b>"
.$value."</b></td>";
}
echo 
"</tr><tr>";

//выводим пустые дни месяца как пробелы
echo "<tr>";
for(
$z=1;$z<$denned1day;$z++)
{
  echo 
"<td valign=middle align=center>&nbsp;</td>\n";
}

//выводим дни месяца
for($d=1;$d<=$numdays;$d++)
{
$days[$d]=rus_format(date("w",mktime(1,1,1,$month,$d,$year)));
if(
$days[$d]==1
echo 
"<tr>";

echo 
"<td valign=\"middle\" align=\"center\">";

$news_date $year."-".$month."-".$d;
$query "select * from news where date(data) = '".$news_date."'";
$result mysql_query($query) or die("Error:<b> "mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
$news_rows mysql_num_rows($result);
if(
$news_rows <> 0
{
echo 
"<a href=\"".$_SERVER['PHP_SELF']."?year=".$year."&day=".$d."&month=".$month."\"><u>".$d."</u></a>";
}
else 
{
echo 
$d;
}
echo 
"</td>";
}
if(
$days[$d]==7) echo "</tr>";
}

for(
$z=0;$z<$num_of_zero_days;$z++)
{
echo 
"<td valign=middle align=center>&nbsp;</td>";
}
echo 
"</tr></table>";
?>

   
 
 автор: kis-kis   (03.05.2007 в 13:22)   письмо автору
 
   для: kis-kis   (03.05.2007 в 11:33)
 

Trianon, не поможете?!

   
Rambler's Top100
вверх

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