分享php(for循环)获取上个月或近几个月时间的方法

摘要近来,因医院预约挂号系统的开发需求,涉及到数据报表导出excel的相关功能,其实有个时间段的选择问题,特拿来和大家分享,虽说比较入门级。我们都知道,利用str_pad(intval($m),2,0,STR_PAD_LEFT)可以很方便的获得上月的时间。

近来,因医院预约挂号系统的开发需求,涉及到数据报表导出excel的相关功能,其中有个时间段的选择问题,特拿来和大家分享,虽说比较入门级。

功能核心提示:利用for循环返回近三个月的数据。我们都知道,利用str_pad(intval($month),2,0,STR_PAD_LEFT)可以很方便的获得上月的时间。

<?php
$y = date('Y');//获取当前时间年份
$m = date('m');//获取当前时间月份
if($m == 1) $time = ($y-1).'-12';//如果是1月份,则上个月就是去年的12月,所以这里的年份要减去1
else $time = $y."-".str_pad(intval($m-1),2,0,STR_PAD_LEFT);//获取上个月时间
?>

如果需要前三个月数据的话,显然这样的处理方式还不够,且类似的代码反复执行,效率不高,这时候选择for循环就对了。

<?php
//for循环变量说明 $sm为起始月份 $em为结束月份 $ny为实际年份
if($m == 1)
{
  $sm = 11;//当前月份是1月,以前三个月计算的话,起始月份就是去年11月
  $em = 13;//这里做为for循环结束标记,结束月份是今年1月,加上12只是便于循环
}
elseif($m == 2)
{
  $sm = 12;//同上
  $em = 14;
}
else
{
  $sm = $m - 3;
  $em = $m;
}
for($x=$sm;$x<$em;$x++)
{
  if($m == 1 || $m == 2)
  {
    if($x >= 11) $ny = $y - 1;//实际年份是去年
    if($x >= 13) $x = $x - 12;//实际月份是今年
  }
  else $ny = $y;
  //年份、月份都顺利得到了,后面就好办了……
}
?> 

好了,就到这,实现的方法当然有很多,重点还是自己的思路要清晰。在php+mysql的开发中,时间函数的使用应该是很频繁了,还是做到得心应手比较好。

推荐阅读:PHP计算时间段某天是星期几,当前时间后几天及日期时间差

给我留言

图片 表情