Простейший календарь

Version3
На сайте с 12.01.2009
Offline
14
390

Здравствуйте все, кто будет это читать!

Подскажите пожалуйста, может кто видел - нужен скрипт простейшего календаря! Без функционала, без событий и прочих рюшек. Нужно только чтобы на странице выводился небольшой квадратик с числами. Пример есть (см. картинку).

Нашел я один такой скрипт, но он создан где-то далеко-далеко, там где неделя начинается с воскресения. Перевести на русский перевел, а как исправить порядок дней в неделе - не знаю.

Этот скрипт взял на WOweb.ru - Scripts - JavaScript - Monthly: Day Highlighted. Один html-файл и все. Красота.

Пособите чем можете..

gif 43046.gif
S
На сайте с 02.08.2006
Offline
23
#1
[Удален]
#2

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

<?php 

#######################
## Настройки ##
#######################

$text_bgcolor = '#FFFFFF';
$highlight_today = 1;
$today_bgcolor = '#2f2f2f';
$today_txtcolor = '#ffffff';
$column_width = 22;

#######################
## Функции ##
#######################

// Generate the Stop Value (returns the number of days in the month)
function genSet_Stop($month,$year) {
if ($month == '12') {
$month = 1;
$year++;
}
else $month++;

$stop = date("d", mktime(0,0,0,$month,0,$year));
return $stop;
}

// Generates the information to be displayed
function genCalendar_Month($month,$year,$stop,$column_width) {
global $PHP_SELF, $today_bgcolor, $today_txtcolor, $highlight_today, $image_dir, $image_name;

$month=intval($month);

if ($month == 12) {
$prev_month = $month - 1;
$prev_year = $year;
$next_month = 1;
$next_year = $year + 1;
}
elseif ($month == 1) {
$prev_month = 12;
$prev_year = $year - 1;
$next_month = $month + 1;
$next_year = $year;
}
else {
$prev_month = $month - 1;
$prev_year = $year;
$next_month = $month + 1;
$next_year = $year;
}

$Month_Text['1'] = 'Январь';
$Month_Text['2'] = 'Февраль';
$Month_Text['3'] = 'Март';
$Month_Text['4'] = 'Апрель';
$Month_Text['5'] = 'Май';
$Month_Text['6'] = 'Июнь';
$Month_Text['7'] = 'Июль';
$Month_Text['8'] = 'Август';
$Month_Text['9'] = 'Сентябрь';
$Month_Text['10'] = 'Октябрь';
$Month_Text['11'] = 'Ноябрь';
$Month_Text['12'] = 'Декабрь';

$string = '<tr>' .
'<td colspan="7" align="center"><font color="#666666"><b>'.$year.' г - '.$Month_Text[$month].'</b></font></td>' .
'</tr>' .

'<tr><td width="'.$column_width.'" align="center"><font color="#666666"><b>Пн</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#666666"><b>Вт</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#666666"><b>Ср</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#666666"><b>Чт</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#666666"><b>Пт</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#2D83E9"><b>Сб</b><height="1" width="'.$column_width.'" border="0" /></font></td>'."\n" .
'<td width="'.$column_width.'" align="center"><font color="#2D83E9"><b>Вс</b><height="1" width="'.$column_width.'" border="0" /></font></td></tr>'."\n" .
'<tr>';

$start = date("w",mktime(0,0,0,$month,1,$year)) - 1;
if ($start == -1) $start = 6;
for ($i=0; $i<$start; $i++) $string .= '<td>&nbsp;</td>';

$frame = $start - 1;

for ($i=1; $i<=$stop; $i++) {
$day = mktime(0,0,0,date("m"),$i,date("Y"));
$frame++;
if($frame > 6) {
$string .= "</tr>\n";
if($i < $stop) $string .= '<tr>';
$frame = 0;
}

if($month == date("m", $day) && $year == date("Y", $day) && date("d") == date("d", $day) && $highlight_today == 1) {
$string .= "<td width=\"$column_width\" bgcolor=\"$today_bgcolor\" align=\"center\">" .
"<b><font color=\"$today_txtcolor\">$i</font></b></td>";
continue;
}

if ($frame == 5 || $frame == 6) {
$string .= "<td width=\"$column_width\" align=\"center\">" .
"<font color=\"#2D83E9\"><b>$i</b></font></td>";
}

else {
$string .= "<td width=\"$column_width\" align=\"center\">" .
"<font color=\"#666666\"><b>$i</b></font></td>";
}
}

for ($i=1; $frame < 6; $frame++) $string .= "<td>&nbsp;</td>";

if ($frame < 6) $string .= "</tr>";
return $string;
}
?>
<style>
td { font-family:Tahoma; font-size:9pt; }
</style>
<body bgcolor="#FFFFFF">
<table width="200" cellpadding="0" cellspacing="0">
<tr>
<td>
<table width="180" height="140" cellpadding="0" cellspacing="0" border="0" align="center" style="margin-top:5px; margin-bottom:10px; ">
<?php

if (@!$month) {
$month = date("m");
$year = date("Y");
}
$day_number = genSet_Stop($month,$year);
print $mid_html = genCalendar_Month($month, $year, $day_number, $column_width);

?>
</table>
</td>
</tr>
</table>

пример использования: http://time2do.ru/ в левой колонке внизу..

dma84
На сайте с 21.04.2009
Offline
168
#3

По теме:

startspaces = thisday - startspaces + 1;

Заменить на:

startspaces = thisday - startspaces;

и выводить дни недели в след. порядке:

document.write("<td align=center>M</td>");

document.write("<td align=center>Tu</td>");
document.write("<td align=center>W</td>");
document.write("<td align=center>Th</td>");
document.write("<td align=center>F</td>");
document.write("<td align=center>Sa</td>");
document.write("<td align=center>Su</td>");
Version3
На сайте с 12.01.2009
Offline
14
#4

Клёва... )

Спасибо большое, уважаемые гуру =)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий