计算两个时间中的每个月的月初和月末
场景
中文描述
计算两个时间中的每个月的月初和月末
代码示例
计算指定月份的月初和月末
//计算指定月份的月初和月末
private function _getCtime($month)
{
$month_start = strtotime($month);
//指定年月份月初时间戳
$BeginDate = date('Y-m-01', strtotime($month));
$EndDate = date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
$month_end = strtotime("next day", strtotime($EndDate)) - 1;//指定年月份月末时间戳
return ["start" => date("Y-m-d", $month_start), "end" => date("Y-m-d", $month_end)];
}
两个时间点的所有月份
//两个时间点的所有月份 第一个时间必须必第二个小
private function _month($start, $end)
{
$start = strtotime($start); // 自动为00:00:00 时分秒
$end = strtotime($end);
$monthArr = array();
$monthArr[] = date("Y-m", $start); // 当前月;
while (($start = strtotime('+1 month', $start)) <= $end) {
$monthArr[] = date('Y-m', $start); // 取得递增月;
}
$result = [];
foreach ($monthArr as $v) {
$result[] = $this->_getCtime($v);
}
return $result;
}