Advertisement
ikrav4ic

Untitled

Apr 8th, 2020
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.32 KB | None | 0 0
  1. $sch = _hk_scheduler_list();
  2. dsm($sch);
  3. $tasks = [];
  4.  
  5. foreach($sch as $item){
  6.   $start = $item->start;
  7.   $end = strtotime('+2 months', $start);
  8.  
  9.   if(intval($item->end_date) !== 0){
  10.     $end = $item->end_date;
  11.   }
  12.  
  13.   $step = 24 * 60 * 60;
  14.   if($item->mode === 'week'){
  15.     $step = 7 * 24 * 60 * 60;
  16.   }
  17.  
  18.   if($item->mode === 'month'){
  19.     $step = 30 * 7 * 24 * 60 * 60;
  20.   }
  21.  
  22.   $taskDates = array();
  23.   for($i = $start; $i < $end;){
  24.     switch($item->mode){
  25.       case 'day':
  26.         generateDates($item, $i, $tasks);
  27.         $i = strtotime('+1 day', $i);
  28.         break;
  29.  
  30.       case 'week':
  31.         if(!empty($item->week_days) && !is_null($item->week_days)){
  32.           $weekDays = explode(',', $item->week_days);
  33.         }else{
  34.           $weekDays = [1, 2, 3, 4, 5, 6, 7];
  35.         }
  36.  
  37.         foreach($weekDays as $weekDay){
  38.           generateDates($item, $i + ($weekDay * 24 * 60 * 60), $tasks);
  39.         }
  40.  
  41.         $i = strtotime('+1 week', $i);
  42.         break;
  43.  
  44.       case 'month':
  45.         if(!empty($item->month_days) && !is_null($item->month_days)){
  46.           $monthDays = explode(',', $item->month_days);
  47.         }else{
  48.           $monthDays = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
  49.         }
  50.  
  51.         foreach($monthDays as $monthDay){
  52.           generateDates($item, $i + ($monthDay * 24 * 60 * 60), $tasks);
  53.         }
  54.  
  55.  
  56.         $i = strtotime('+1 month', $i);
  57.         break;
  58.     }
  59.   }
  60. }
  61.  
  62. function generateDates($item, $i, &$tasks){
  63.   $createDate = new DateTime();
  64.   $createDate->setTimestamp($i);
  65.   $task = array();
  66.  
  67.   if(!empty($item->hours) && !is_null($item->hours)){
  68.     $hours = explode(',', $item->hours);
  69.     foreach($hours as $hour){
  70.       $time = explode(':', $hour);
  71.       $createDate->setTime($time[0], $time[1]);
  72.       $rooms = explode(',', $item->rooms);
  73.       foreach($rooms as $room){
  74.         $task['date_create'] = $createDate;
  75.         $task['room'] = $room;
  76.         //dsm($task);
  77.        $tasks[$item->id][] = $task;
  78.       }
  79.     }
  80.   }else{
  81.     $createDate->setTime(0, 0);
  82.     $rooms = explode(',', $item->rooms);
  83.     foreach($rooms as $room){
  84.       $task['date_create'] = $createDate;
  85.       $task['room'] = $room;
  86.       //dsm($task);
  87.       $tasks[$item->id][] = $task;
  88.     }
  89.   }
  90. }
  91.  
  92. dsm($tasks);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement