日期操作
一、根据日期生成日期数组
/**
* 根据指定日期生成日期数组
* @param $start_time 开始时间
* @param $end_time 结束时间
* @return array 返回数组结果
*/
function createDateArr($start_time, $end_time)
{
$open_start_time = $start_time;
$open_end_time = $end_time;
$stimestamp = strtotime($open_start_time);
$etimestamp = strtotime($open_end_time);
// 计算日期段内有多少天
$days = ($etimestamp - $stimestamp) / 86400 + 1;
// 保存每天日期
$arr = [];
for ($i = 0; $i < $days; $i++) {
$arr[] = date('Y-m-d', $stimestamp + (86400 * $i));
}
return $arr;
}
//调用示例
$start_time='2024-05-12';
$end_time='2024-05-15';
$data=createDateArr($start_time,$end_time);
//结果
Array
(
[0] => 2024-05-12
[1] => 2024-05-13
[2] => 2024-05-14
[3] => 2024-05-15
)
二、根据指定日期获取月份数组
/**
* 根据指定日期生成月份数组
* @param $startDate
* @param $endDate
* @return array
* @throws Exception
*/
function generateMonthlyArray($startDate, $endDate) {
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$end->modify('last day of this month');
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $end);
$monthlyArray = array();
foreach ($period as $month) {
$monthlyArray[] = $month->format('Y-m');
}
return $monthlyArray;
}
//调用示例
$start_time='2024-05-12';
$end_time='2024-12-15';
$data=generateMonthlyArray($start_time,$end_time);
//结果
Array
(
[0] => 2024-05
[1] => 2024-06
[2] => 2024-07
[3] => 2024-08
[4]