PHP获取指定日期之间各月第一天和最后一天

来源:互联网 发布:java字符串转date 编辑:程序博客网 时间:2024/06/06 02:42

主要用到了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"  }}
0 0
原创粉丝点击