php制作年历
① php如何生成一个指定年份一整年的日历
从你的描述看来,只需要知道指定年份的每个月的天数和每天对应的周次即可。
PHP中 Calendar 函数可以实现第一步:
int cal_days_in_month ( int $calendar , int $month , int $year )
剩下的就是写循环遍历所有月,按月生成日历了。
② HTML5+PHP要怎么制作日历
JS有个dataPicker控件,如果是自己来做需要写循环判断算法
③ php万年历程序代码
PHP代码:
--------------------------------------------------------------------------------
<style>
.calendar
{
background-color: #FFFFFF;
border: 1px solid #003366;
}
.calendar .title
{
background-image: url("/theme/monthbg.gif");
line-height: 17pt;
background-color: #D8E2EC;
text-align: center;
vertical-align: middle;
font-family: Geneva, Verdana, Arial, sans-serif;
font-size: 13px;
font-weight: Bold;
color: #252216;
}
.calendar .head
{
background-image: url("dayBg.gif");
font-family: Geneva, Verdana, Arial, sans-serif;
font-size: 10px;
font-weight: Bold;
color: #433D27;
}
.calendar tbody
{
line-height: 11pt;
background-color: #F5F4D3;
text-align: center;
vertical-align: middle;
}
.calendar td
{
font-family: Geneva, Verdana, Arial, sans-serif;
font-size: 10px;
line-height: 15pt;
text-align: center;
vertical-align: middle;
width: 25px;
}
.calendar .weekday
{
background-color: #e0e0e0;
}
.calendar .weekend
{
background-color: #d0d0d0;
}
.calendar .today
{
background-color: #f7bebd;
}
.calendar .exmonth
{
background-color: #eeeeee;
}
.calendar a
{
text-decoration: none;
cursor: hand;
}
</style>
<?php
// 显示某天所在月份的日历
function calendar($time)
{
$start=mktime(0, 0, 0, date('m', $time), 1, date('Y', $time));
$start=$start-date('w', $start)*86400; // extent to start of week
$end=mktime(0, 0, 0, date('m', $time)+1, 1, date('Y', $time));
$end=$end+(7-date('w', $end))*86400; // extent to end of week
//$sWeekday=array('日','一','二','三','四','五','六');
$sWeekday=array('S','M','T','W','T','F','S');
$title=date('M Y', $time);
$prev=mktime(0, 0, 0, date('m', $time)-1, 1, date('Y', $time));
$next=mktime(0, 0, 0, date('m', $time)+1, 1, date('Y', $time));
$url=$_SERVER['PHP_SELF'].'?time=';
$str = '';
$str .= <<<END
<table class="calendar" cellspacing="1">
<tr class="title">
<th colspan="2"><a href="{$url}{$prev}"><<</a></th>
<th colspan="3">{$title}</td>
<th colspan="2"><a href="{$url}{$next}">>></a></th>
</tr>
<tr class="head">
<th>{$sWeekday[0]}</td>
<th>{$sWeekday[1]}</td>
<th>{$sWeekday[2]}</td>
<th>{$sWeekday[3]}</td>
<th>{$sWeekday[4]}</td>
<th>{$sWeekday[5]}</td>
<th>{$sWeekday[6]}</td>
</tr>
<tr>
END;
for($stamp=$start;$stamp<$end;$stamp+=86400) // loop through each day, which is 86400 seconds
{
$weekday=date('w', $stamp);
if(date('m', $stamp)!=date('m', $time)) $style='exmonth';
else if(date('Y-m-d', $stamp)==date('Y-m-d')) $style='today';
else if(date('w', $stamp)==0 || date('w', $stamp)==6) $style='weekend';
else $style='weekday';
$str.= "\t\t".'<td class="'.$style.'"><a href="'.$url.$stamp.'">'.sprintf('%d',date('d', $stamp)).'</a></td>'."\n";
if(date('w', $stamp)==6) $str.="\t".'</tr>'."\n";
}
$str .= '</table>';
return $str;
}
?>
④ 如何用PHP制作日历
calendar.class.php
代码如下:
<?php
classCalendar{
private$year;//当前的年
private$month;//当前的月
private$start_weekday;//当月的第一天对应的是周几
private$days;//当前月一共多少天
function__construct(){
$this->year=isset($_GET["year"])?$_GET["year"]:date("Y");
$this->month=isset($_GET["month"])?$_GET["month"]:date("m");
$this->start_weekday=date("w",mktime(0,0,0,$this->month,1,$this->year));
$this->days=date("t",mktime(0,0,0,$this->month,1,$this->year));
}
functionout(){
echo'<tablealign="center">';
$this->chageDate("test.php");
$this->weeksList();
$this->daysList();
echo'</table>';
}
privatefunctionweeksList(){
$week=array('日','一','二','三','四','五','六');
echo'<tr>';
for($i=0;$i<count($week);$i++)
echo'<thclass="fontb">'.$week[$i].'</th>';
echo'</tr>';
}
privatefunctiondaysList(){
echo'<tr>';
//输出空格(当前一月第一天前面要空出来)
for($j=0;$j<$this->start_weekday;$j++)
echo'<td></td>';
for($k=1;$k<=$this->days;$k++){
$j++;
if($k==date('d'))
echo'<tdclass="fontb">'.$k.'</td>';
else
echo'<td>'.$k.'</td>';
if($j%7==0)
echo'</tr><tr>';
}
//后面几个空格
while($j%7!==0){
echo'<td></td>';
$j++;
}
echo'</tr>';
}
privatefunctionprevYear($year,$month){
$year=$year-1;
if($year<1970)
$year=1970;
return"year={$year}&month={$month}";
}
privatefunctionprevMonth($year,$month){
if($month==1){
$year=$year-1;
if($year<1970)
$year=1970;
$month=12;
}else{
$month--;
}
return"year={$year}&month={$month}";
}
privatefunctionnextYear($year,$month){
$year=$year+1;
if($year>2038)
$year=2038;
return"year={$year}&month={$month}";
}
privatefunctionnextMonth($year,$month){
if($month==12){
$year++;
if($year>2100)
$year=2100;
$month=1;
}else{
$month++;
}
return"year={$year}&month={$month}";
}
privatefunctionchageDate($url=""){
echo'<tr>';
echo'<td><ahref="?'.$this->prevYear($this->year,$this->month).'">'.'<<'.'</a></td>';
echo'<td><ahref="?'.$this->prevMonth($this->year,$this->month).'">'.'<'.'</a></td>';
echo'<tdcolspan="3">';
echo'<form>';
echo'<selectname="year"onchange="window.location=''.$url.'?year='+this.options[selectedIndex].value+'&month='.$this->month.''">';
for($sy=1970;$sy<=2100;$sy++){
$selected=($sy==$this->year)?"selected":"";
echo'<option'.$selected.'value="'.$sy.'">'.$sy.'</option>';
}
echo'</select>';
echo'<selectname="month"onchange="window.location=''.$url.'?year='.$this->year.'&month='+this.options[selectedIndex].value">';
for($sm=1;$sm<=12;$sm++){
$selected1=($sm==$this->month)?"selected":"";
echo'<option'.$selected1.'value="'.$sm.'">'.$sm.'</option>';
}
echo'</select>';
echo'</form>';
echo'</td>';
echo'<td><ahref="?'.$this->nextYear($this->year,$this->month).'">'.'>>'.'</a></td>';
echo'<td><ahref="?'.$this->nextMonth($this->year,$this->month).'">'.'>'.'</a></td>';
echo'</tr>';
}
}
?>test.php
代码如下:
<style>
table{
border:1pxsolid#050;
}
.fontb{
color:white;
background:blue;
}
th{
width:30px;
}
td,th{
height:30px;
text-align:center;
}
form{
margin:0px;
padding:0px;
}
</style>
<?php
include"calendar.class.php";
$calendar=newCalendar;
$calendar->out();
?>
⑤ 年历怎么制作
年历制作方法如下:
准备材料:A4白纸或彩色卡纸、笔
1、准备A4大小的白纸或彩色卡纸。卡纸比普通白纸厚,用卡纸制成的日历比较耐用。
⑥ php中将一年12个月的日历全部输出。如何做
<?php
//SKY8G提供
function cal_days_in_year($year){
$days=0;
for($month=1;$month<=12;$month++){
$days = $days + cal_days_in_month(CAL_GREGORIAN,$month,$year);
}
return $days;
}
//闰年
echo "这是闰年一年有:".cal_days_in_year(2000)."天";
echo "\n";
//平年
echo "这是平年一年有:".cal_days_in_year(1999)."天";
echo "\n";
//2019年
echo "今年2019年有:".cal_days_in_year(date('Y',time()))."天";
echo "\n";
//接下来我们是用php的内置函数cal_days_in_month()
$d=cal_days_in_month(CAL_GREGORIAN,2,2010);
echo "2010 年平年 2 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,2,2000);
echo "2000 年闰年 2 月有 $d 天。";
echo "\n";
$d=cal_days_in_month(CAL_GREGORIAN,4,2010);
echo "2010 年平年 4 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,4,2000);
echo "2000 年闰年 4 月有 $d 天。";
echo "\n";
$d=cal_days_in_month(CAL_GREGORIAN,8,2010);
echo "2010 年平年 8 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,8,2000);
echo "2000 年闰年 8 月有 $d 天。";
//详情如果想了解详情去sky8g网观看,希望对你有帮助!
⑦ 三、用PHP制作日历(要求每月显示不同的画面,如下图所示)。
坦白 说, php 日历网上有案例的 要换不同背景,自己去下载一个做判断去!
⑧ 求助:关于php制作日历的问题
$php_self?year=$y_lnk1&month=$month中的$php_self是链接地址,这里给出的是一个变量来代替冗长的字符串,比如说www.phpfans.net,问号后面的year、month传的参数,并分别给他们赋值为$y-lnk、$month。
添加该链接出错是语法错误!将双引号去掉即可。
⑨ 用php代码做简易的万年历问题
建议;你点击一次刷新一次,当然错误了哦。
连接点击地方是按钮,计算写在函数{}里面。
jq和js都有代码在网上找。