>  기사  >  php教程  >  计算过去N月每个自然月的起止时间戳

计算过去N月每个自然月的起止时间戳

WBOY
WBOY원래의
2016-06-06 19:38:151103검색

适用于需要按自然月度分析数据的场合 无 /** * 计算过去N月每个自然月的起止时间戳,包括当前月份 * @param integer $max 月份数,默认为6 * @param string $monthstr 返回值数组的第三个下标(具体月份的表示形式) * @return array 每个子数组形式array(月起

适用于需要按自然月度分析数据的场合
/**
 * 计算过去N月每个自然月的起止时间戳,包括当前月份
 * @param  integer $max      月份数,默认为6
 * @param  string  $monthstr 返回值数组的第三个下标(具体月份的表示形式)
 * @return array            每个子数组形式array(月起始时间戳,月结束时间戳,月份名称)
 */
function month_offset($max= 6,$monthstr = 'ym'){
	if ($max<=0) {
		return false;
	}
	$base = date('Y-m-01');
	$y = 1;
	$mo = array();
	$mo[0][0] = strtotime($base);
	$mo[0][1] = time();
	$mo[0][2] = date('ym');
	while ($y < $max) {
		$mo[$y][0] = strtotime(date('Y-m-01',strtotime($base.' -'.$y.' month')));
		$mo[$y][1] = $y == 1?$mo[0][0]:$mo[$y-1][0];
		$mo[$y][2] = date($monthstr,$mo[$y][0]);
		$y++;
	}
	return array_reverse($mo);
}

var_export(month_offset(3));
exit;
/*array (
  0 => 
  array (
    0 => 1425139200,
    1 => 1427817600,
    2 => '1503',
  ),
  1 => 
  array (
    0 => 1427817600,
    1 => 1430409600,
    2 => '1504',
  ),
  2 => 
  array (
    0 => 1430409600,
    1 => 1430702254,
    2 => '1505',
  ),
)[Finished in 0.1s]*/
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.