<?php
/*
Simple Calendar
by Karlis Blumentals (www.blumentals.net) Displays a calendar, one month at a time.
Selected date is passed as parameter day=yyyy-mm-dd
e.g. myscript.php?day=2004-10-30
*/
// date ok flag
$dateok = false;// parse parameter
if (isset($GLOBALS['day'])) {
list($yr, $mo, $da) = explode('-', $_GET['day']);
$yr = intval($yr);
$mo = intval($mo);
$da = intval($da);
if (checkdate($mo, $da, $yr)) $dateok = true;
}// if invalid date selected then selected date = today
if (!$dateok) {
$mo = date('m');
$da = date('d');
$yr = date('Y');
}$offset = date('w', mktime(0,0,0,$mo,1,$yr));
// we must have a value in range 1..7
if ($offset == 0) $offset = 7;// days in month
$nd = date('d', mktime(0,0,0,$mo+1,0,$yr));// days array
$days = array();// reset array
for ($i=0;$i<=42;$i++) $days[$i]['out']= ' ';// fill days array
// valid days contain data, invalid days are left blank
$j=1;
for ($i=$offset;$i<=($offset+$nd-1);$i++) {
$day = $j++;
$date = $yr.'-'.$mo.'-'.$day;
$days[$i]['out']= '<a href="?day='.$date.'">'.$day.'</a>';
$days[$i]['dat']= $date;
}// output table
echo('<table border="1" cellpadding="3" cellspacing="0" width="200">');
echo('<tr>');
echo('<td colspan="1" align="center" class="linkbar"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,$da,$yr-1)).'">«</a></td>');
echo('<td colspan="5" align="center" class="linkbar"><p class="calendar">'.$yr.'</p></td>');
echo('<td colspan="1" align="center" class="linkbar"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,$da,$yr+1)).'">»</a></td>');
echo('</tr>'."\n");
echo('<tr>');
echo('<td colspan="1" align="center" class="linkbar2"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,0,$yr)).'">«</a></td>');
echo('<td colspan="5" align="center" class="linkbar2"><p class="calendar">'.date('F', mktime(0,0,0,$mo,$da,$yr)).'</p></td>');
echo('<td colspan="1" align="center" class="linkbar2"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo+1,1,$yr)).'">»</a></td>');
echo('</tr>'."\n");
$cntr = 1; // day printing counter
for ($i=1;$i<=6;$i++) {
echo('<tr>');
for ($j=1;$j<=7;$j++) {
$curr = $cntr++;
if ($days[$curr]['dat'] == $yr.'-'.$mo.'-'.$da) $style = 'bold'; else $style = 'normal';
echo('<td width="14%" style="font-weight: '.$style.'">'.$days[$curr]['out'].'</td>'."\n");
}
echo('</tr>'."\n");
}
echo('</table>');
?>可以参考下
/*
Simple Calendar
by Karlis Blumentals (www.blumentals.net) Displays a calendar, one month at a time.
Selected date is passed as parameter day=yyyy-mm-dd
e.g. myscript.php?day=2004-10-30
*/
// date ok flag
$dateok = false;// parse parameter
if (isset($GLOBALS['day'])) {
list($yr, $mo, $da) = explode('-', $_GET['day']);
$yr = intval($yr);
$mo = intval($mo);
$da = intval($da);
if (checkdate($mo, $da, $yr)) $dateok = true;
}// if invalid date selected then selected date = today
if (!$dateok) {
$mo = date('m');
$da = date('d');
$yr = date('Y');
}$offset = date('w', mktime(0,0,0,$mo,1,$yr));
// we must have a value in range 1..7
if ($offset == 0) $offset = 7;// days in month
$nd = date('d', mktime(0,0,0,$mo+1,0,$yr));// days array
$days = array();// reset array
for ($i=0;$i<=42;$i++) $days[$i]['out']= ' ';// fill days array
// valid days contain data, invalid days are left blank
$j=1;
for ($i=$offset;$i<=($offset+$nd-1);$i++) {
$day = $j++;
$date = $yr.'-'.$mo.'-'.$day;
$days[$i]['out']= '<a href="?day='.$date.'">'.$day.'</a>';
$days[$i]['dat']= $date;
}// output table
echo('<table border="1" cellpadding="3" cellspacing="0" width="200">');
echo('<tr>');
echo('<td colspan="1" align="center" class="linkbar"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,$da,$yr-1)).'">«</a></td>');
echo('<td colspan="5" align="center" class="linkbar"><p class="calendar">'.$yr.'</p></td>');
echo('<td colspan="1" align="center" class="linkbar"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,$da,$yr+1)).'">»</a></td>');
echo('</tr>'."\n");
echo('<tr>');
echo('<td colspan="1" align="center" class="linkbar2"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo,0,$yr)).'">«</a></td>');
echo('<td colspan="5" align="center" class="linkbar2"><p class="calendar">'.date('F', mktime(0,0,0,$mo,$da,$yr)).'</p></td>');
echo('<td colspan="1" align="center" class="linkbar2"><a href="?day='.date('Y-m-d', mktime(0,0,0,$mo+1,1,$yr)).'">»</a></td>');
echo('</tr>'."\n");
$cntr = 1; // day printing counter
for ($i=1;$i<=6;$i++) {
echo('<tr>');
for ($j=1;$j<=7;$j++) {
$curr = $cntr++;
if ($days[$curr]['dat'] == $yr.'-'.$mo.'-'.$da) $style = 'bold'; else $style = 'normal';
echo('<td width="14%" style="font-weight: '.$style.'">'.$days[$curr]['out'].'</td>'."\n");
}
echo('</tr>'."\n");
}
echo('</table>');
?>可以参考下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货