当前位置:首页> PHP教程> php基础
关键字
文章内容
实现从指定时间向下推n个月的函数
 
 
修改时间:[2011/01/09 22:05]    阅读次数:[792]    发表者:[起缘]
 
作者: bjbs_270

前一段时间做了一个月报表统计用下了如题的功能,结合别人用mktime()函数我写了一个可是后来老是出错,郁闷极。周末抽出一点时间写一个来用,但愿能对部分村民有用。


PHP代码:--------------------------------------------------------------------------------


<?

/*

* 作者:心灯

* 功能:实现从指定时间向下推N个月的函数

* month($ymd,$len) $ymd时间,$len推出几个月

* $ymd='2005-01-01';

*/

function month($ymd=',$len='12'){

$month = array();

$lang = $lang."<meta http-equiv="Content-Type" content="text/html; charset=gb2312">";

if($ymd){//判断时间格式是否正确

if(!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$ymd)){

echo "<script>alert('函数参数中的日期格式不对');history.back()</script>";

exit;

}

}

if($len){

if(!ereg("[0-9]+",$len)){

echo $lang."<script>alert('函数中的时间长度中含有非法字段');history.back()</script>";

exit;

}

}

for($i=0;$i<$len;$i++){

if($i==0){

$mktime = $ymd?strtotime($ymd):time();

}

$month[] = date("Y-m",$mktime);//可以根据需要来设计置你要的格式

$day = date("t",$mktime);

if($i==0)

$reday = date("d",$mktime);

else

$reday = $day;

$t1 = $mktime;

$mktime=date("Y-m-d",mktime(date("H",$t1),date("i",$t1),date("s",$t1),date("m",$t1),date("d",$t1)-$reday,date("Y",$t1)));

$mktime =strtotime($mktime);

}

return $month;

}

$month = month();

foreach($month as $key => $v){

echo $v."<br>";

}

?>

--------------------------------------------------------------------------------


效果如下:

2005-01

2004-12

2004-11

2004-10

2004-09

2004-08

2004-07

2004-06

2004-05

2004-04

2004-03

2004-02


phpfans.net收集整理