function getTimes($search_time)
{
$search_time = explode(' - ', $search_time);
$begin = strtotime(trim($search_time[0]));
$end = strtotime(trim($search_time[1]));
$diff = ($end - $begin) / 86400 + 1;
$times = [];
$months = [];
$years = [];
$result = ['type' => '', 'data' => [], 'diff' => $diff];
if ($diff <= 30 || date('Ym',$begin)==date('Ym',$end)) {
//按天算
for ($i = 0; $i < $diff; $i++) {
$times[] = $begin + $i * 86400;
}
$result['type'] = 'day';
$result['data'] = $times;
} else if ($diff < 365) {
// 按月算
for ($i = 0; $i < $diff; $i++) {
$timestamp = $begin + $i * 86400;
$date = date('Ym', $timestamp);
$months[$date][] = $timestamp;
}
$result['type'] = 'month';
$result['data'] = $months;
} else {
// 按年算
for ($i = 0; $i < $diff; $i++) {
$timestamp = $begin + $i * 86400;
$year = date('Y', $timestamp);
$years[$year][] = $timestamp;
}
$result['type'] = 'year';
$result['data'] = $years;
}
return $result;
}
使用演示
getTimes("2012-10-06 - 2020-09-12");