Alexander-V-Sh
05.06.2006, 20:48
Взял из модуля календарик, чтобы на весь год отображался.
Все сделал под свои нужды, но никак не соображу как сделать, чтобы день недели начинался с понедельника, а не с воскресенья. (даже кусок в коде найти не могу, хоть он и маленький).
И уж совсем было бы здорово, если воскресенье красным отметить.
Вот код:
function calendar() {
if (!$Date) {
$Date = Date("m/d/Y");
}
$Date_Array = explode("/", $Date);
$Date = mktime("", "", "", $Date_Array[0], $Date_Array[1], $Date_Array[2]);
for ($i=1;$i<13;$i++) {
/**** Get the Day (Integer) for the first day in the month */
$First_Day_of_Month_Date = mktime("", "", "", $i, 1, $Date_Array[2]);
$Date = $First_Day_of_Month_Date;
$Date_Array[0] = $i;
$Day_of_First_Week = Date("w",$First_Day_of_Month_Date);
/**** Find the last day of the month */
$Month = Date("m",$Date);
$day = 27;
do {
$End_of_Month_Date = mktime("", "", "", $Date_Array[0], $day, $Date_Array[2]);
$Test_Month = Date("m",$End_of_Month_Date);
$day += 1;
} while ( $Month == $Test_Month );
$Last_Day = $day - 2;
/**** Get todays date */
$Today_d = Date("d");
$Today_m = Date("m");
$Today_y = Date("Y");
print("<TABLE class=\"avantgo\" border=0 cellspacing=1 cellpadding=0>");
print("<TR bgcolor=#829E1E><TH colspan=7><font class=mini color=#ffffff>");
$month = Date("m",$Date);
if ($month == "01") {
$monthname = "Январь";
} elseif ($month == "02") {
$monthname = "Февраль";
} elseif ($month == "03") {
$monthname = "Март";
} elseif ($month == "04") {
$monthname = "Апрель";
} elseif ($month == "05") {
$monthname = "Май";
} elseif ($month == "06") {
$monthname = "Июнь";
} elseif ($month == "07") {
$monthname = "Июль";
} elseif ($month == "08") {
$monthname = "Август";
} elseif ($month == "09") {
$monthname = "Сентябрь";
} elseif ($month == "10") {
$monthname = "Октябрь";
} elseif ($month == "11") {
$monthname = "Ноябрь";
} elseif ($month == "12") {
$monthname = "Декабрь";
}
print( $monthname );
print("</FONT></TH></TR>");
/**** Previous Greyed month days */
print("\n<TR>");
if ($Day_of_First_Week != 0)
print("<TD colspan=$Day_of_First_Week></TD>");
$day_of_week = $Day_of_First_Week + 1;
/**** Build Current Month */
for ($day = 1 ; $day <= $Last_Day ; $day++) {
if ($day_of_week == 1) {
print("\n<TR>");
}
if (($day == $Today_d) && ($Date_Array[0] == $Today_m) && ($Date_Array[2] == $Today_y))
print("<TD class=\"outline\" width=8 align=center><FONT class=footmsg><a class=\"topiclink\" href=\"modules.php?name=Today&op=Eph&did=$day&mid=$i\"><b>$day</b></a></TD>");
else
print("<TD class=\"avantgo\" width=8 align=center><FONT class=footmsg><a class=\"topiclink\" href=\"modules.php?name=Today&op=Eph&did=$day&mid=$i\">$day</a></TD>");
if ($day_of_week == 7) {
$day_of_week = 0;
print("\n</TR>");
}
$day_of_week += 1;
}
/**** Next Greyed month days */
$day = 1;
if ($day_of_week != 1) {
$tmp = 8 - $day_of_week;
print("<TD colspan=$tmp><font face=arial size=1 color=ffffff>.</TD>");
}
}
print("</TR></TABLE></CENTER>");
}
Все сделал под свои нужды, но никак не соображу как сделать, чтобы день недели начинался с понедельника, а не с воскресенья. (даже кусок в коде найти не могу, хоть он и маленький).
И уж совсем было бы здорово, если воскресенье красным отметить.
Вот код:
function calendar() {
if (!$Date) {
$Date = Date("m/d/Y");
}
$Date_Array = explode("/", $Date);
$Date = mktime("", "", "", $Date_Array[0], $Date_Array[1], $Date_Array[2]);
for ($i=1;$i<13;$i++) {
/**** Get the Day (Integer) for the first day in the month */
$First_Day_of_Month_Date = mktime("", "", "", $i, 1, $Date_Array[2]);
$Date = $First_Day_of_Month_Date;
$Date_Array[0] = $i;
$Day_of_First_Week = Date("w",$First_Day_of_Month_Date);
/**** Find the last day of the month */
$Month = Date("m",$Date);
$day = 27;
do {
$End_of_Month_Date = mktime("", "", "", $Date_Array[0], $day, $Date_Array[2]);
$Test_Month = Date("m",$End_of_Month_Date);
$day += 1;
} while ( $Month == $Test_Month );
$Last_Day = $day - 2;
/**** Get todays date */
$Today_d = Date("d");
$Today_m = Date("m");
$Today_y = Date("Y");
print("<TABLE class=\"avantgo\" border=0 cellspacing=1 cellpadding=0>");
print("<TR bgcolor=#829E1E><TH colspan=7><font class=mini color=#ffffff>");
$month = Date("m",$Date);
if ($month == "01") {
$monthname = "Январь";
} elseif ($month == "02") {
$monthname = "Февраль";
} elseif ($month == "03") {
$monthname = "Март";
} elseif ($month == "04") {
$monthname = "Апрель";
} elseif ($month == "05") {
$monthname = "Май";
} elseif ($month == "06") {
$monthname = "Июнь";
} elseif ($month == "07") {
$monthname = "Июль";
} elseif ($month == "08") {
$monthname = "Август";
} elseif ($month == "09") {
$monthname = "Сентябрь";
} elseif ($month == "10") {
$monthname = "Октябрь";
} elseif ($month == "11") {
$monthname = "Ноябрь";
} elseif ($month == "12") {
$monthname = "Декабрь";
}
print( $monthname );
print("</FONT></TH></TR>");
/**** Previous Greyed month days */
print("\n<TR>");
if ($Day_of_First_Week != 0)
print("<TD colspan=$Day_of_First_Week></TD>");
$day_of_week = $Day_of_First_Week + 1;
/**** Build Current Month */
for ($day = 1 ; $day <= $Last_Day ; $day++) {
if ($day_of_week == 1) {
print("\n<TR>");
}
if (($day == $Today_d) && ($Date_Array[0] == $Today_m) && ($Date_Array[2] == $Today_y))
print("<TD class=\"outline\" width=8 align=center><FONT class=footmsg><a class=\"topiclink\" href=\"modules.php?name=Today&op=Eph&did=$day&mid=$i\"><b>$day</b></a></TD>");
else
print("<TD class=\"avantgo\" width=8 align=center><FONT class=footmsg><a class=\"topiclink\" href=\"modules.php?name=Today&op=Eph&did=$day&mid=$i\">$day</a></TD>");
if ($day_of_week == 7) {
$day_of_week = 0;
print("\n</TR>");
}
$day_of_week += 1;
}
/**** Next Greyed month days */
$day = 1;
if ($day_of_week != 1) {
$tmp = 8 - $day_of_week;
print("<TD colspan=$tmp><font face=arial size=1 color=ffffff>.</TD>");
}
}
print("</TR></TABLE></CENTER>");
}