今天在奥索上看到这篇文章
《 如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd) 》
http://www.oso.com.cn/read_article.php?article_id=3955
也想把自己写的给大家看看,请笑纳。
<?
//求第二天的函数
//$theday0 例如:"2001-1-12"
function add1($theday0){
$theday1=explode("-",$theday0);
$nian0=$theday1[0];
$yue0=$theday1[1];
$ri0=$theday1[2];
$ri1=1+$ri0; //日数加一
if (checkdate($yue0,$ri1,$nian0)){
$add1=$nian0."-".$yue0."-".$ri1;
}else{ //不是合法的日期
$yue1=1+$yue0; //月份加一
$ri1=1; //日数为一
if($yue1>12){
$yue1="1";
$nian0=1+$nian0;
}
$add1=$nian0."-".$yue1."-".$ri1;
}
return $add1;
}
//求第几天的函数
function addn($theday,$n){
$day1=$theday;
for($i=1;$i<=$n;$i++){
$day1=add1($day1);
}
return $day1;
}
//例:求2001-1-1,第3天,30天,365天的日期
echo addn("2001-1-1",3)."<P>";
echo addn("2001-1-1",30)."<P>";
echo addn("2001-1-1",365)."<P>";
//应用 求第二天的函数的一个例子:2001-1-1日 后30天的日期
$ddd[0]=date("2001-1-1");
for($i=1;$i<=30;$i++){
$ddd[$i]=add1($ddd[$i-1]);
$theday=$ddd[$i];
echo $theday."<P>";
}
?>
|