• 0
  • 0

PHP 日期区间转年月日 时间戳区间

2021-04-10 623 0 admin 所属分类:PHP 记录
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");


返回顶部