下面是一个部分表行,它将创建一个包含3列的行。 每侧有两列是链接,左边是前一年,右边是明年的链接。 中心是12月1日到12月的链接。
当您点击月份链接时,日历将显示您在日历所在的当前年份中点击的月份。例如,日历将默认打开当前月份和年份... 2010年3月。如果您单击上一年(2009年),它将显示去年(2009年)的当前月份(3月)...然后如果您单击Jun,日历将显示日历当前日期的六月,即2009年6月。
我的问题是,我可以做些什么来跟踪代码来做这件事。
$Calendar.= "</tr><tr><td>"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=" . $LastYear["year"] ."\"> $LastY </a></td>\n";
$Calendar.= "<td colspan=\"5\">"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[0] ."\">Jan.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[1] ."\">Feb.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[2] ."\">Mar.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[3] ."\">Apr.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[4] ."\">May</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[5] ."\">Jun.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[6] ."\">Jul.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[7] ."\">Aug.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[8] ."\">Sep.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[9] ."\">Oct.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[10] ."\">Nov.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[11] ."\">Dec.</a>
</td>";
$Calendar.= "<td>"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=" . $NextYear["year"] ."\"> $NextY </a></td>\n";
提前致谢。
修改
首先我应该提一下......只需要使用PHP。
感谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
好。这里有一些从
开始的提示如上所述,您必须为当月制作HTML日历。
从打印日期数字开始。 $num=date("t");
会给你几天的时间。
所以,我希望您可以使用for
循环,从1到$ num,在单独的<td>
标记中打印每个数字。
接下来,尝试在7天内阻止该列表。你可以使用一个计数器。每次迭代都会增加它,一旦达到7,就添加</tr><tr>
来打破一条线。
最后。您必须将此列表与周开始对齐。 date("w")
会帮助你。
答案 2 :(得分:1)
如果我拥有完整的代码而不仅仅是我需要帮助的部分表行,也许会更清楚。我已经创建了日历。我只是想在该日历中添加额外的行,我可以点击以按年和月打开新的日历。
如果您可以在浏览器上打开此php,您会在三列中注意到日历下方的链接 左列是从当前显示的年份开始的前一年开放的链接 右列是从当前显示的年份开始的明年开放的链接。 中心列是从1月到12月的每个月的链接,无论点击哪个月,它都会从当前“显示”的年份打开该月份日历。
我希望这更清楚。我为任何困惑道歉。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="calendar.css" />
</head>
<body><center>
<?php
$date = time();
$Month = date('m', $date);
$Day = date('d', $date);
$Year = date('Y', $date);
/* Calendar layout*/
function calendar_layout($month,$day,$year)
{
/* This checkdate function displays "bool(true)" in the web page, so I commented out */
// var_dump(checkdate($month,$day,$year));
$MonthArray = array("January ","February ","March ","April ","May ","June ","July ","August ","September ","October ","Novembe r","December ");
$ThisMonth = $MonthArray[$month-1];
/* Creates table for calendar */
$Calendar = '<table border="1" cellpadding="5">';
$Header = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
/* Creates the first row print the Month and Year of this calendar */
$Calendar.= '<tr><td colspan="7">';
$Calendar.= '<div class="largewords">'.$ThisMonth.''.$year.'</div>';
$Calendar.= '</td></tr>';
/* Creates the second row for Week days and print the week days header */
$Calendar.= '<tr>
<td class="weekdays">'.implode('</td><td class="weekdays">',$Header).'</td>
</tr>';
/* Finds out and set how many blank days before 1st day */
$FirstDay = mktime(0,0,0,$month, 1, $year);
$DayOfWeek = date('D', $FirstDay);
switch($DayOfWeek){
case "Sun": $BlankDays = 0; break;
case "Mon": $BlankDays = 1; break;
case "Tue": $BlankDays = 2; break;
case "Wed": $BlankDays = 3; break;
case "Thu": $BlankDays = 4; break;
case "Fri": $BlankDays = 5; break;
case "Sat": $BlankDays = 6; break;
}
/* Finds out how many total days this month */
$DayInMonth = date('t',mktime(0,0,0,$month,1,$year));
$DayCounter = 0;
/* Creates the second row for first week */
$Calendar.= '<tr>';
/* Prints the blank spaces before day 1 */
while($DayCounter < $BlankDays)
{
$Calendar.= '<td> </td>';
$DayCounter++;
}
/* Starts printing dates */
for($PrintDay = 1; $PrintDay <= $DayInMonth; $PrintDay++):
$Calendar.= '<td class="eachday">';
$Calendar.= '<div class="numericdays">'.$PrintDay.'</div>';
$Calendar.= str_repeat('<p> </p>',2);
$Calendar.= '</td>';
if($BlankDays == 6):
$Calendar.= '</tr>';
if(($DayCounter+1) != $DayInMonth):
$Calendar.= '<tr>';
endif;
$BlankDays = -1;
$DayInWeek = 0;
endif;
$DayInWeek++; $BlankDays++; $DayCounter++;
endfor;
/* Prints blank spaces after the last day of the month */
if($DayInWeek < 8):
for($x = 1; $x <= (8 - $DayInWeek); $x++):
$Calendar.= '<td> </td>';
endfor;
endif;
/* Bottom row - links for other years and months */
$LastYear = getDate(mktime(0, 0, 0, $month, 1, $year-1));
$ThisYear = getDate(mktime(0, 0, 0, $month, 1, $year));
$NextYear = getDate(mktime(0, 0, 0, $month, 1, $year+1));
$LastY = $LastYear["year"];
$ThisY = $ThisYear["year"];
$NextY = $NextYear["year"];
/* Initializing the years range from 1970 to 2038 */
$MinYear = date("Y",mktime(0,0,0,1,1,1970));
$MaxYear = date("Y",mktime(0,0,0,1,1,2038));
$Calendar.= "</tr><tr><td>"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=" . $LastYear["year"] ."\"> $LastY </a></td>\n";
$Calendar.= "<td colspan=\"5\">"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[0] ."\">Jan.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[1] ."\">Feb.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[2] ."\">Mar.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[3] ."\">Apr.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[4] ."\">May</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[5] ."\">Jun.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[6] ."\">Jul.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[7] ."\">Aug.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[8] ."\">Sep.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[9] ."\">Oct.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[10] ."\">Nov.</a> |
"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=".$ThisYear["year"]."&month=" . $MonthArray[11] ."\">Dec.</a>
</td>";
$Calendar.= "<td>"."<a "."href=\"".$_SERVER["PHP_SELF"]."?year=" . $NextYear["year"] ."\"> $NextY </a></td>\n";
}
/* Close the table */
$Calendar.= '</tr></table>';
return $Calendar;
}
echo '<a href="index.php">Today</a>', ' is: ', date('l, F jS Y');
echo "<br />";
echo "<br />";
echo calendar_layout("$Month","$Day","$Year");
?>
</center>
</body>
</html>
当我浏览Leo发布的那个网站时,我发现了一些东西。 如果我理解正确,那么逻辑就是编码以检查$ Month&amp;为此特定部分设置或不设置$ Year变量。
所以我发现这个如果声明:
if(isset($_GET["Year"]))
{
use local system's year
}
else
{
$Year = $_GET["Year"]
}
现在的问题是......如何找出语法并将其应用到原始代码中?
答案 3 :(得分:0)
首先,您必须编写一个日历例程,该例程需要花费$ year和$ month参数并绘制月历。