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

Форум PHP

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

 

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

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

тема: Календарь, вывод месяца и года текстом
 
 автор: zetrider   (12.10.2009 в 12:11)   письмо автору
 
 

Здравствуйте, возникла неболшая потребность выводить дату и год текстом, а не цифровыми значениями... данный код выводит:

<td valign=middle align=center colspan=7 style=\"padding-bottom: 0px;padding-top: 2px;\">
<a href=\"index.php?data=$last_year\" title=\"Год назад\"><img src=\"$script_dir/cpanel/img/arrow_l.gif\" border=0></a> &nbsp;
<a href=\"index.php?data=$last_month\" title=\"Месяц назад\">$last_month</a>
&nbsp; &nbsp;<a href=\"/\"><img src=\"$script_dir/cpanel/img/px.gif\" width=1 height=1 border=0></a>&nbsp; &nbsp; 
<a href=\"index.php?data=$next_month\" title=\"Месяц вперед\">$next_month</a> &nbsp;
<a href=\"index.php?data=$next_year\" title=\"Год вперед\"><img src=\"$script_dir/cpanel/img/arrow_r.gif\" border=0></a></td>


Месяц назад - 2009-9-12
Месяц вперед - 2009-11-12
Год назад 2008-10-12
Год вперед 2010-10-12

Нужно вывести текстом:
Месяц назад - Сентябрь
Месяц вперед - Ноябрь
Год назад - 2008
Год вперед - 2010

Сам код календаря:


<?
include("cpanel/lib.php");
$now_month date("n",time());
$now_year  date("Y",time());
$now_today date("j"time());

if (isset(
$_GET['data'])) {
$data  $_GET['data'];
$exdata explode("-"$data);
$month intval($exdata[1]);
if (
$month 1) { $month 12; }
if (
$month 12) { $month 1; }
$today intval($exdata[2]);
$year intval($exdata[0]);
}else{
$month $now_month;
$year  $now_year;
$today $now_today;
}

$dayone    date("w",mktime(1,1,1,$month,1,$year));
$numdays   date("t",mktime(1,1,1,$month,1,$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="Декабрь";}


if(
checkdate($month,29,$year) && $month==2) {
   
//echo "это 29 мес!!! ";
   
$dayone=7;
   }
?>
<table border=0 cellspacing=1 cellpadding=1 bgcolor=000000 width=250 style="font-family: verdana;font-size: 8pt;">
<?
if ($c_top == 1) {print "<tr bgcolor=000000><td colspan=7 align=center><b><font color=ffffff>$month_ru $year</font></b></td></tr>";}?>


<tr bgcolor=000000 style="font-weight: bold; text-align : center;">
<td><font color=ffffff>Пн</font></td>
<td><font color=ffffff>Вт</font></td>
<td><font color=ffffff>Ср</font></td>
<td><font color=ffffff>Чт</font></td>
<td><font color=ffffff>Пт</font></td>
<td><font color=ff0000>Сб</font></td>
<td><font color=ff0000>Вс</font></td>
</tr>

<tr>
<?
//выводим пустые дни месяца как пробелы
if ($dayone == 0) {$dayone=7;}
for (
$i 0$i < ($dayone-1); $i++) {print "<td bgcolor=#000000>&nbsp;</td>\n\t";}

//выводим дни месяца
for ($dats 1$dats <= $numdays$dats++) {
  if (
$i >= 7) {print "</tr>\n\t<tr>";$i=0; }
  if (
$dats == $today) {print "<td valign=\"middle\" align=\"center\" bgcolor=#000000 border=1 style=\"color: 000000\"><b>";

  
$news_date $year."-".$month."-".$dats;
  
$news_result mysql_query("select * from ".$table_news." where news_date = '".$news_date."' ");
  
$news_rows mysql_num_rows($news_result);
  if(
$news_rows >0){print "<a href=\"index.php?data=$news_date\"><u><font color=ff0000>$dats</font></u></a>";}else {echo $dats;}

print 
"</td>";}else{print "<td valign=\"middle\" align=\"center\" bgcolor=#000000 style=\"color: 000000\">";

$news_date $year."-".$month."-".$dats;
$news_result mysql_query("select * from ".$table_news." where news_date = '".$news_date."' ");
$news_rows mysql_num_rows($news_result);
if(
$news_rows >0) {?>
<a href="index.php?data=<?=$year."-".$month."-".$dats;?>"><u><font color=c0c0c0><?=$dats;?></font></u></a>
<?}
else {echo 
"<font color=ffffff>"$dats ."</font>";}
echo 
"</td>\n\t";
  }
$i++;
}

$create_emptys - ((($dayone-1) + $numdays) % 7);
if (
$create_emptys == 7) { $create_emptys 0; }

//выводим пустые ячейки
for ($i 0$i $create_emptys$i++) {echo "<td bgcolor=000000>&nbsp;</td>\n\t";}
echo 
"</tr>";

if (
$c_bottom==1) {
$next_year $year+."-".$month."-".$now_today;
$last_year $year-."-".$month."-".$now_today;
if (
$month == 12) {$next_month $year+."-1-".$now_today;}else{$next_month $year."-".($month+1)."-".$now_today;}
if (
$month == 1) {$last_month $year-."-12-".$now_today;}else{$last_month $year."-".($month-1)."-".$now_today;}

print 
"
<tr bgcolor=#000000>
<td valign=middle align=center colspan=7 style=\"padding-bottom: 0px;padding-top: 2px;\">
<a href=\"index.php?data=
$last_year\" title=\"Год назад\">$last_year</a> &nbsp;
<a href=\"index.php?data=
$last_month\" title=\"Месяц назад\">$last_month</a>
&nbsp; &nbsp;<a href=\"/\"><img src=\"
$script_dir/cpanel/img/px.gif\" width=1 height=1 border=0></a>&nbsp; &nbsp; 
<a href=\"index.php?data=
$next_month\" title=\"Месяц вперед\">$next_month</a> &nbsp;
<a href=\"index.php?data=
$next_year\" title=\"Год вперед\">$next_year</a></td>
</tr>"
;
}
?>
</table>


Как можно реализовать это? вижу что это простая задача но недоходит как...

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 12:47)   письмо автору
 
   для: zetrider   (12.10.2009 в 12:11)
 

С годом разобрался:

$next_year_text = $year+1;
$last_year_text = $year-1;

и подставляем переменные в print, а как с месяцем быть?

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 21:38)   письмо автору
 
   для: ZetRider   (12.10.2009 в 12:47)
 

добавляю переменные
$next_month_text = $month+1;
$last_month_text = $month-1;

выводит цифрами,.. и все правильно след и предыдущий месяц... но мне нужно текстом чтобы вывел

  Ответить  
 
 автор: Diplex   (12.10.2009 в 21:56)   письмо автору
 
   для: ZetRider   (12.10.2009 в 21:38)
 

Попробуйте, за место $month писать $month_ru....

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 21:57)   письмо автору
 
   для: Diplex   (12.10.2009 в 21:56)
 

так пробывал он выводит
< -1 1 >

  Ответить  
 
 автор: Diplex   (12.10.2009 в 22:02)   письмо автору
 
   для: ZetRider   (12.10.2009 в 21:57)
 

$next_year = $year+1 ."-".$month."-".$now_today; 
$last_year = $year-1 ."-".$month."-".$now_today;


в этих строчках, пробовали менять?

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 22:03)   письмо автору
 
   для: Diplex   (12.10.2009 в 22:02)
 

это год, с годом разобрался щас вся проблема в том чтобы вывести месяц не цифрой а текстом...

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 22:10)   письмо автору
 
   для: ZetRider   (12.10.2009 в 22:03)
 

вот строчки отвечают за месяц, их я использую как ссылку для перехода на след или предыдущий месяц...
if ($month == 12) {$next_month = $year+1 ."-1-".$now_today;}else{$next_month = $year."-".($month+1)."-".$now_today;} 
if ($month == 1) {$last_month = $year-1 ."-12-".$now_today;}else{$last_month = $year."-".($month-1)."-".$now_today;}


вот переменные котрые использую для вывода названия месяца след или предыдущего:
$next_month_text = $month+1;
$last_month_text = $month-1;


но проблема в том что он выводит цифры месяцев, а нужно чтобы он вывел названия месяцев

  Ответить  
 
 автор: Diplex   (12.10.2009 в 22:15)   письмо автору
 
   для: ZetRider   (12.10.2009 в 22:10)
 

попробуйте так:


$nzmes = array('','январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь');
if ($month == 12) {$next_month = 'январь';}else{$mm = $month+1; $next_month = $nzmes[$mm];} 
if ($month == 1) {$last_month = 'декабрь';}else{$mm = $month-1; $last_month = $nzmes[$mm];}

  Ответить  
 
 автор: ZetRider   (12.10.2009 в 22:26)   письмо автору
 
   для: Diplex   (12.10.2009 в 22:15)
 

большое спасибо

  Ответить  
Rambler's Top100
вверх

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