for ($year=2005, $month=1; ; $year++, $month++) {
if (($year == 2006) && ($month > 8)) {
break;
} else {
echo $year . "-" . lpad($month, 2, '0');
}
}
if (($year == 2006) && ($month > 8)) {
break;
} else {
echo $year . "-" . lpad($month, 2, '0');
}
}
解决方案 »
- 求高手,我的phpmydamin配置哪里出了问题了?
- 请教各位大侠一个appserv的问题!
- x_debug
- 如何修改PHP访问文件路径??
- 您好,我想做一个外包/中介网站,类似于以下网站
- 我读数据库信息 明显字段名字都写错了。但是程序不报错,只是显示不错来而已。我想知道怎么让热爱报错!!!
- 摸班里不能显示出数组的直
- 问个从php网页直接下载文件的问题!
- 把附件(WORD、EXCEL、PDF)或图片存贮到数据库的完整范例程序。(MYSQL、SQL SERVER、ORACLE)三个版本
- 急!session的问题。
- 正则表达式:(?1)这表示什么呢?出自Gdj(陈水)写的#(?=(<table(?:(?:[^<]|<(?!table))*?|(?1))*</table>))#is
- 请问字符型转换数值型的函数是什么???
$end_month = "2006-08";
$syear=intval(substr($start_month,0,4));
$eyear=intval(substr($end_month,0,4));
$smonth=intval(substr($start_month,5,2));
$emonth=intval(substr($end_month,5,2));
while(($syear<$eyear)||(($syear==$eyear)&&($smonth<$emonth-1))){
$smonth++;
echo $syear."-".$smonth."<br>";
if($smonth/12==1){
$smonth=0;
$syear++;
}
}
$end_month = "2006-08";
$i=(int)substr($start_month,-2);//开始月份,1为一月开始
$j=(int)substr($start_month,2,3);//开始年份,0位2000年开始
$month = '';
while( $month!= $end_month ){
$month = '2'.sprintf('%03d',$j).'-'.sprintf('%02d',$i);
$i++;
if( $i>12 ){
$i=1;
$j++;
}
echo $month;
}
$start_month = "2005-01";
$start_date=getdate(strtotime($start_month));
$end_month = "2006-08";
$end=strtotime($end_month."-01");
$m=1;
do{
$next=mktime(0, 0, 0, $start_date['mon']+$m, 1, $start_date['year']);
echo date("Y-m",$next).'<br/>';
$m++;
}while($next<$end);
?>
修改如下:
getdate(strtotime($start_month . '-01'));否则得到的日期不正确
$date1 = explode($tags,$date1);
$date2 = explode($tags,$date2);
return abs($date1[0] - $date2[0]) * 12 + abs($date1[1] - $date2[1]);
}#调用:
#可以不用管日期的先后顺序,函数里面日期相减取了绝对值
$date1 = "2003-05";
$date2 = "2008-11";
$monthNum = getMonthNum( $date1, $date2 );
echo $monthNum;