admin 发表于 2015-9-1 14:13:56

PHP函数实现获取月、周、日的开始时间戳和结束时间戳

PHP函数实现获取月、周、日的开始时间戳和结束时间戳

函数源码:/*
$type: 需要获取的时间戳类型:M为月 W为周 D为天。
$value: 需要的值。+ 或者 - 数值。
$time:返回为包含开始时间和结束时间的数组。
*/
function ReturnUtime($type='',$value=''){
    $type=strtoupper($type);
    switch ($type) {
      case 'M':
            $t = strtotime((date('Y-m',time()) . '-01 00:00:01')); // 20151031修复strtotime按30天计算的BUG
            $time[] = strtotime(date("Y-m-01 00:00:00", strtotime("{$value} month",$t)));//月开始时间
            $time[] = strtotime(date("Y-m-t 23:59:59", strtotime("{$value} month",$t)));//月结束时间
            break;
      case 'W':
            $time[] = mktime(0,0,0,date('m'),date('d')-date('w')+1+($value),date('Y'));//周开始时间
            $time[] = mktime(23,59,59,date('m'),date('d')-date('w')+7+($value),date('Y'));//周结束时间
            break;
      case 'D':
            $time[] = mktime(0,0,0,date('m'),date('d')+($value),date('Y'));//天开始时间
            $time[] = mktime(23,59,59,date('m'),date('d')+($value),date('Y'));//天结束时间
            break;
      default:
            $time[] = mktime(0,0,0,date('m'),date('d'),date('Y'));//默认为当天
            $time[] = mktime(23,59,59,date('m'),date('d'),date('Y'));//默认为当天
            break;
    }
    return $time;
}

使用方法://部分例子:
echo date("Y-m-d H:i:s",ReturnUtime('M','-1')).'<br>';//上个月第一天
echo date("Y-m-d H:i:s",ReturnUtime('M','-1')).'<br>';//上个月最后一天
echo date("Y-m-d H:i:s",ReturnUtime('W','-7')).'<br>';//上周第一天
echo date("Y-m-d H:i:s",ReturnUtime('W','-7')).'<br>';//上周最后一天
echo date("Y-m-d H:i:s",ReturnUtime('D','-1')).'<br>';//昨天开始时间
echo date("Y-m-d H:i:s",ReturnUtime('D','-1')).'<br>';//昨天结束时间

比如获取上个月的开始和结束,可以这么定义使用:
$aa=ReturnUtime('M','-1');
echo date("Y-m-d H:i:s",$aa);//开始时间
echo '<br />';
echo date("Y-m-d H:i:s",$aa);//结束时间

比如获取上周的开始和结束,可以这么使用:
$aa=ReturnUtime('W','-7');
echo date("Y-m-d H:i:s",$aa);//开始时间
echo '<br />';
echo date("Y-m-d H:i:s",$aa);//结束时间

比如获取昨天的开始和结束,可以这么使用:
$aa=ReturnUtime('D','-1');
echo date("Y-m-d H:i:s",$aa);//开始时间
echo '<br />';
echo date("Y-m-d H:i:s",$aa);//结束时间
页: [1]
查看完整版本: PHP函数实现获取月、周、日的开始时间戳和结束时间戳