首页 开发编程 正文

PHP万年历一号怎么确定(php制作万年历)

2、php万年历程序代码3、php中用while怎样写万年历php日历模块的运算逻辑求解!通过date()函数可以很容易获得上面的数据。php//date()函数的基本用法$year=date('Y')?例如4$firstDay=date("w",//计算数组中的日历表格数$tempDays=$firstDay+$daysInMont...

今天给各位分享PHP万年历一号怎么确定的知识,其中也会对php制作万年历进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录:

php日历模块的运算逻辑求解!如何求日期对应的星期几!

现在以2010年6月14日为例说明。6月份共有30天,在这个日历表中共5行,首先需要确定当前所在的日期(当然也可以指定一个日期),比如14日,通过表格可以知道它在第3行对应星期一那列(第3周)。通常每个月第1天不是在表格开始的位置,位置并不固定,同样不固定的还有每个月的周数,有时候是4周,有时候是5周。这样,想要完成这个日历表格就需要确定一些基础的日期变量,下面具体来看需要设定的基础变量。

PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。

?php

//date()函数的基本用法

$year = date('Y'); //获得年份,例如2006

$month = date('n'); //获得月份,例如04

$day = date('j'); //获得日期,例如3

?

通过mktime()函数和date()函数获得当月的总天数。

//获得当月的总天数

$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));

同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。

//获得每个月的第一天,例如4

$firstDay = date("w", mktime(0,0,0,$month,1,$year));

现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。

(1)需要获得表格的数目。

//计算数组中的日历表格数

$tempDays = $firstDay + $daysInMonth;

(2)需要算出该月一共有几周(即表格的行数)。

//获得表格行数

$weeksInMonth = ceil($tempDays/7);

(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下:

?php

for($j=0;$j$weeksInMonth;$j++)

{

for($i=0;$i7

;$i++)

{

$counter ++;

$week [$j] [$i] = $counter;

}

}

?

(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下:

?php

//创建日期二维数组

for($j = 0; $j $weeksInMonth; $j ++) {

for($i = 0; $i 7; $i ++) {

$counter ++;

$week [$j] [$i] = $counter;

//日期偏移量

$week [$j] [$i] -= $firstDay;

if (($week [$j] [$i] 1) || ($week [$j] [$i] $daysInMonth)) {

$week [$j] [$i] = "";

}

}

}

?

(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期

不知是否正确,转自我的一个朋友

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中用while怎样写万年历

?php

/**

 * 1.获取日期年和月,默认当前年份和月份

 * 2.计算当前月份有多少天和本月1号是星期几

 * 3.输出日期的头部信息

 * 4.循环遍历输出输出天数

 * 5.完成上一月和下一月链接

 * *

*/

//1.

$year = empty($_REQUEST['y']) ? date("Y") : intval($_REQUEST['y']);

$month = empty($_REQUEST['m']) ? date("m") : intval($_REQUEST['m']);

//2.

$day = date("t",mktime(0,0,0,$month,'1',$year));//获取对应该月的天数

$moneday = date("w",mktime(0,0,0,$month,'1',$year)); //获取该月的星期几

//3.

$weekarr = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); 

echo "center";

echo "h1{$year}年{$month}月/h1";

echo "table width='600' border='1' ";

echo "tr";

for($i=0;$i=6;$i++){

    echo "th{$weekarr[$i]}/th";

}

echo "/tr";

echo "tr";

//4.

$ed = 1;

while($ed = $day){

    //每七天换行

    echo "tr";

    for($i=0;$i=6;$i++){

        //不能超过当月的天数且还没有该输出日期的时候

        if($ed = $day  ($moneday = $i || $ed != 1) ){

            echo "td{$ed}/td";

            $ed++;

        }else{

            echo "td/td";

        }

    }

    

}

echo "/tr";

echo "/table";

//5

$prey = $nexty = $year;//年

$prem = $nextm = $month;//月

if($prem = 1){

    $prem = 12;

    $prey--;

}else{

    $prem--;//上一月

}

if($nextm = 12){

    $nextm = 1;

    $nexty++;

}else{

    $nextm++;//下一月

}

echo "h3a href='wanianli.php?y={$prey}m={$prem}'上一月/anbsp;nbsp;";

echo "a href='wanianli.php?y={$nexty}m={$nextm}'下一月/a/h3";

echo "/center";

PHP万年历一号怎么确定的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php制作万年历、PHP万年历一号怎么确定的信息别忘了在本站进行查找喔。

本文转载自互联网,如有侵权,联系删除