Hejsa - jeg har ikke lige kilde koden til mit eget script her - men en anden en, som er downloaded fra
www.phpclasses.org - håber det er hvad du søger:
gem som: class.xCalendar.php
<?php
/*----------------------------------------------------------------------------*
* Class Constructor : xCalendar(bool $sundayFirst = false) *
* *
* Class Public Functions : setDayNames(string array $dayNames) *
* setMonthNames(string array $monthNames) *
* getMonthTable(integer $month = null, *
* integer $year = null, *
* string $id_string = "calendar") *
*----------------------------------------------------------------------------*/
class xCalendar
{
var $startSunday;
var $DAY_NAMES;
var $MONTH_NAMES;
/*----------------------------------------------------------------------------*
* Description : Class constructor. *
* Parameters : bool $sundayFirst = Week starts from sunday (not monday)? *
* Return : *
*----------------------------------------------------------------------------*/
function xCalendar($sundayFirst = false){
$this->startSunday = $sundayFirst;
if ($this->startSunday)
$this->DAY_NAMES = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thurday", "Friday", "Saturday");
else
$this->DAY_NAMES = array("Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday");
$this->MONTH_NAMES = array("Non-Visible", "January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December");
}
/*----------------------------------------------------------------------------*
* Description : Set names of days. *
* Parameters : string array $dayNames = array with 7 name for days. *
* Return : Returns TRUE on success, FALSE on failure. *
*----------------------------------------------------------------------------*/
function setDayNames($dayNames)
{
if (is_array($dayNames))
{
if (count($dayNames) == 7)
{
$this->DAY_NAMES = $dayNames;
return true;
}
}
return false;
}
/*----------------------------------------------------------------------------*
* Description : Set names of months. *
* Parameters : string array $monthNames = array with 12 name for months. *
* Return : Returns TRUE on success, FALSE on failure. *
*----------------------------------------------------------------------------*/
function setMonthNames($monthNames)
{
if (is_array($monthNames))
{
if (count($monthNames)== 12)
{
for ($i = 0; $i < 12; $i++)
{
$this->MONTH_NAMES[$i + 1] = $monthNames[$i];
}
return true;
}
}
return false;
}
/*----------------------------------------------------------------------------*
* Description : Return month information in HTML-table. *
* Parameters : integer $month = month to view. *
* integer $year = year to view. *
* string $id_string = table ID for using right styles. *
* Return : Returns month information in HTML-table, FALSE on failure. *
*----------------------------------------------------------------------------*/
function getMonthTable($month = null, $year = null, $id_string = "calendar")
{
// If both parameters has not been specified, display current month
if ((is_null($month)) || (is_null($year)))
{
$month = date('n');
$year = date('Y');
}
// what is first day of month (0 = Sunday, 6 = Saturday)?
$firstDay = date('w', mktime(0, 0, 0, $month, 1, $year));
// If week starts from monday, we have to degree one for right calculations.
if (!$this->startSunday)
{
$firstDay = $firstDay - 1;
if ($firstDay < 0)
$firstDay = 6;
}
// Calculate how many days and rows are in this month's calendar.
$calendarDays = date('t', mktime(0, 0, 0, $month, 1, $year));
$calendarRows = (int) ceil(($calendarDays + $firstDay) / 7);
// Is current day in this month?
$today = 0;
if (($month == date('n')) && ($year == date('Y')))
$today = date('d');
// Create HTML-table from calendar informations.
$content = "<table id=\"".$id_string."\" cellspacing=\"0\" cellpadding=\"4\" border=\"0\">";
$content .= "<tr>";
$content .= "<td class=\"title\" colspan=\"7\">";
$content .= $this->MONTH_NAMES[$month]." ".$year;
$content .= "</td>";
$content .= "</tr>";
$content .= "<tr>";
foreach ($this->DAY_NAMES as $dayName)
{
$content .= "<td class=\"name\">".ucfirst($dayName)."</td>";
}
for ($day = 0; $day < ($calendarRows * 7); $day++)
{
if (($day % 7) == 0)
$content .= "</tr><tr>";
if (($day < $firstDay) || ($day > ($calendarDays + $firstDay - 1)))
{
$content .= "<td> </td>";
}
else
{
if ($today == (1 + $day - $firstDay))
$content .= "<td class=\"today\">".(1 + $day - $firstDay)."</td>";
else
$content .= "<td>".(1 + $day - $firstDay)."</td>";
}
}
$content .= "</tr>";
$content .= "</table>";
return $content;
}
}
?>
Fil som indeholder kalenderen:
<?php
// Add class to script.
require_once("class.xCalendar.php");
// Create new calendar object.
$calendar = new xCalendar();
// Set name of months for finnish people.
/*$calendar->setMonthNames(array('Tammikuu', 'Helmikuu', 'Maaliskuu',
'Huhtikuu', 'Toukokuu', 'Kesäkuu',
'Heinäkuu', 'Elokuu', 'Syyskuu',
'Lokakuu', 'Marraskuu', 'December'));*/
// Set name of days for finnish people.
//$calendar->setDayNames(array('Ma', 'Ti', 'Ke', 'To', 'Pe', 'La', 'Su'));
// View calendar table.
echo $calendar->getMonthTable();
?>
style fil:
#calendar
{
background-color : white;
border-bottom : 1px solid black;
border-right : 1px solid black;
color : black;
font-family : "Courier New", Courier, monospace;
font-size : 8pt;
}
#calendar TD
{
border-left : 1px solid black;
border-top : 1px solid black;
text-align : center;
}
#calendar TD.name
{
background-color : #E4E4E4;
width : 14%;
}
#calendar TD.title
{
background-color : #778899;
color : white;
font-weight : bold;
text-align : center;
}
#calendar TD.today
{
background-color : #00CC80;
}