Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何减少php中的月数?_Php_Date - Fatal编程技术网

如何减少php中的月数?

如何减少php中的月数?,php,date,Php,Date,我想将4个季度月份与当前月份分开 $q1Start = date('Y-m-01',strtotime('-2 months')); $q1End = date('Y-m-d'); $q2Start = date('Y-m-01',strtotime('-5 months')); $q2End = date('Y-m-d',strtotime('-3 months')); $q3Start = date('Y-m-01',strtotime('-8 months')); $q3End = d

我想将4个季度月份与当前月份分开

$q1Start = date('Y-m-01',strtotime('-2 months'));
$q1End = date('Y-m-d');

$q2Start = date('Y-m-01',strtotime('-5 months'));
$q2End = date('Y-m-d',strtotime('-3 months'));

$q3Start = date('Y-m-01',strtotime('-8 months'));
$q3End = date('Y-m-t',strtotime('-6 months'));

$q4Start = date('Y-m-01',strtotime('-11 months'));
$q4End = date('Y-m-t',strtotime('-9 months'));
但它没有显示确切的日期

我想要这样

2015-06-01
2015-08-31

2015-03-01
2015-05-31

2015-02-28
2014-12-01

2014-09-01
2014-11-30

如何按当月减少?谢谢

由于季度应以当月为基础,因此更容易从当月第一天开始计算

$dayOfMonth = date('d');
$firstDayOfCurrentMonth = strtotime(sprintf('-%d days + 1 day midnight', $dayOfMonth));

$q1Start = date('Y-m-d', strtotime('-2 months', $firstDayOfCurrentMonth));
$q1End = date('Y-m-d', strtotime('+1 month - 1 day', $firstDayOfCurrentMonth));

$q2Start = date('Y-m-d', strtotime('-5 months', $firstDayOfCurrentMonth));
$q2End = date('Y-m-d', strtotime('-2 month - 1 day', $firstDayOfCurrentMonth));

$q3Start = date('Y-m-d', strtotime('-8 months', $firstDayOfCurrentMonth));
$q3End = date('Y-m-d', strtotime('-5 month - 1 day', $firstDayOfCurrentMonth));

$q4Start = date('Y-m-d', strtotime('-11 months', $firstDayOfCurrentMonth));
$q4End = date('Y-m-d', strtotime('-8 month - 1 day', $firstDayOfCurrentMonth));
这会将所有变量设置为预期值。

可能重复的