主要用到了PHP强悍的strtotime和date函数。
1.获取指定日期所在月的第一天
function getMonthFirstDay($date) {
return date('Y-m-01',strtotime($date));
}
复制代码
2.获取指定日期所在月的最后一天
function getMonthEndDay($date) {
$firstDay = getMonthFirstDay($date);
return date("Y-m-d",strtotime("$firstDay +1 month -1 day"));
}
复制代码
3.获取指定日期之间各月的第一天和最后一天
function splitMonths($startTime,$endTime) {
if (strtotime($startTime) > strtotime($endTime)) {
return false;
}
$res = array();
$startDay = date('Y-m-d',strtotime($startTime));
$firstEndDay = getMonthEndDay($startTime);
$lastStartDay = getMonthFirstDay($endTime);
$lastEndDay = date('Y-m-d',strtotime($endTime));
//$res[] = array($startDay,$firstEndDay);
while (strtotime($startDay) < strtotime($lastStartDay)) {
$endDay = getMonthEndDay($startDay);
$res[] = array($startDay,$endDay);
$startDay = date('Y-m-01',strtotime("$startDay +1 month"));
}
$res[] = array($startDay,$lastEndDay);
return $res;
}
复制代码
比如输入start_date=2017-02-15&end_date=2017-05-25
输出结果是
array(4) {
[0]=>
array(2) {
[0]=>
string(10) "2017-02-15"
[1]=>
string(10) "2017-02-28"
}
[1]=>
array(2) {
[0]=>
string(10) "2017-03-01"
[1]=>
string(10) "2017-03-31"
}
[2]=>
array(2) {
[0]=>
string(10) "2017-04-01"
[1]=>
string(10) "2017-04-30"
}
[3]=>
array(2) {
[0]=>
string(10) "2017-05-01"
[1]=>
string(10) "2017-05-25"
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END