/** * 获取每个月的开始和结束时间 * @param $start * @param $end * @return array|string * @since 2018/3/23 17:49 */ function getMonthFromRange($start, $end) { if (!is_numeric($start) || !is_numeric($end) || ($end <= $start)) return ''; $startTime = date('Y-m', $start); $endTime = date('Y-m', $end); //转为时间戳 $startTime = strtotime($startTime . '-01'); $endTime = strtotime($endTime . '-01'); $i = 0; $lastData = array(); while($startTime<=$endTime){ $month = array(); //这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数 if ($i == 0) { $month[] = date('Y-m-d H:i:s', $start); $firstday = date('Y-m-01', $start); $month[] = date('Y-m-d 23:59:59', strtotime("$firstday +1 month -1 day")); } elseif ($startTime == $endTime) { $month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime))); $month[] = date('Y-m-d H:i:s', $end); } else { $month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime))); $month[] = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m", $startTime), date('d', strtotime("$month[0] +1 month -1 day")), date("Y", $startTime))); } $startTime += strtotime('+1 month', $startTime) - $startTime; $lastData[$i] = $month; $i++; } return $lastData; }
宠物免费领养小程序,欢迎来踩