<?
$time = time();$year = date("Y", $time);
$month = date("n", $time);
$day = date("j", $time);$year2=@$_GET["year"];
$month2=@$_GET["month"];
$day2=@$_GET["day"];if($year2!="" || $month2!="" || $day2!=""){
if($year2!=""){
$year = $year2;
}
if($month2!=""){
$month = $month2;
}
if($day2!=""){
$day = $day2;
}
else{
$day = 1;
}
$time = mktime(0,0,0,$month,$day,$year);
}$num = date("t", $time);$today = mktime(0,0,0,$month,$day,$year);$date = array('(日)','(一)','(二)','(三)','(四)','(五)','(六)');if($month==1){
$year3 = $year-1;
$month3 = 12;
}
else{
$year3 = $year;
$month3 = $month-1;
}if($month==12){
$year4 = $year+1;
$month4 = 1;
}
else{
$year4 = $year;
$month4 = $month+1;
}print "<table width=150><tr><td colspan=7>";
print "<center>
<a href=\"?year=$year3&month=$month3\">".$month3."月</a>";
print " ".$year."年".$month."月 ";
print "<a href=\"?year=$year4&month=$month4\">".$month4."月</a>
</td></tr>
";print "
<tr>
<td><font color=red>(日)</font></td>
<td>(一)</td>
<td>(二)</td>
<td>(三)</td>
<td>(四)</td>
<td>(五)</td>
<td><font color=blue>(六)</font></td>
</tr>
";for($i=1;$i<=$num;$i++){ $print_today = mktime(0, 0, 0, $month, $i, $year);
$w = date("w", $print_today); if($i==1){
print "<tr>";
for($j=1;$j<=$w;$j++){
print "<td></td>";
}
$data = check($i,$w,$year,$month,$day);
print "<td>$data</td>";
if($w==6){
print "</tr>";
}
}
else{
if($w==0){
print "<tr>";
}
$data = check($i,$w,$year,$month,$day);
print "<td>$data</td>";
if($w==6){
print "</tr>";
}
}}
print "</table>";function check($i,$w,$year,$month,$day){ if($w==0){
$change = "<font color=red><a href=\"?year=$year
&month=$month&day=$i&write=on\" color=red>$i</a></font>";
}
elseif($w==6){
$change = "<font color=blue><a href=\"?year=$year
&month=$month&day=$i&write=on\">$i</a></font>";
}
else{
$change = "<a href=\"?year=$year&month=$month&day=$i
&write=on\">$i</a>";
} return $change;}
?>
strtotime("+1 week", time()); 下周
strtotime("-1 week", time()); 上周第几周的这个还真没有找到,可能要自己算了.
其实就是这些函数,算来算去的.
date("W")
date("w")
date('N')
用这几个函数就可以搞定的。
$start_date = date('Y-m-d', strtotime("$end_date -6 day"));
echo $start_date;
echo "<br>";
for ($i=1;$i<6;$i++)
{
echo date('Y-m-d',strtotime("$start_date +$i day"));
echo "<br>";
}
echo $end_date;
function dateweek($datetime,$time)
{
if(is_numeric($datetime))
{
switch ($datetime)
{
case 1:
$end_date = date('Y-m-d',strtotime("+6 day",$time));
break;
case 2:
$end_date = date('Y-m-d',strtotime("+5 day",$time));
break;
case 3:
$end_date = date('Y-m-d',strtotime("+4 day",$time));
break;
case 4:
$end_date = date('Y-m-d',strtotime("+3 day",$time));
break;
case 5:
$end_date = date('Y-m-d',strtotime("+2 day",$time));
break;
case 6:
$end_date = date('Y-m-d',strtotime("+1 day",$time));
break;
}
return $end_date;
}
}
//可以用函数getdate获得
function weekNum($startday, $nowday)
{
return ceil(($nowday - $startday)/ 7)
}
$ChineseWeek = array(0=>'星期天',1=>'星期一',...);
//第一个星期的日期
$StartWeek = getdate(strtotime('08/11/21'));
$StartDay = $StartWeek['0'] - $StartWeek['wday']*3688*24;
$TheWeek = strtotime('08/11/21');//当前查询日期
$TheWeekInfo = getdate($TheWeek);
$SDay = $TheWeek - $TheWeekInfo['wday']*3600*24;
$EDay = $SDay + 3600*24*7;
echo '第'+weekNum($StartDay,$TheWeek)+'周';
for ($i=$SDay;$i<$EDay;$i+=3600*24)
{
$DayInfo = getdate($i);
echo date("y/m/d", $i).$ChineseWeek[$DayInfo['wday']]."<BR>\n";
}差不多就是这样子了