returnDays($data['time'], false); if($day > 31) return [false, '查询时间仅支持范围区间在31天内']; $return = []; foreach (SystemL::$device as $key => $value){ $list = []; for ($i = $data['time'][0]; $i <= $data['time'][1]; $i+= 86400){ $tmp['time'] = date("Y-m-d", $i); $tmp['num'] = mt_rand(1100, 1200); $list[] = $tmp; } $return[] = [ "title" => $key, "list" => $list ]; } return [true, $return]; } /** * 数据OEE分析图 * @param $data * @return array */ public function deviceStatisticsReportOEEChart($data){ if(empty($data['time'][0]) || empty($data['time'][1])) return [false, '时间必须选择!']; $day = $this->returnDays($data['time'], false); if($day > 10) return [false, '查询时间仅支持范围区间在10天内']; $return = []; foreach (SystemL::$device as $key => $value){ $list = []; for ($i = $data['time'][0]; $i <= $data['time'][1]; $i+= 86400){ $tmp['time'] = date("Y-m-d", $i); $tmp['num'] = $this->getRandomFloat(35); $list[] = $tmp; } $return[] = [ "title" => $key, "list" => $list ]; } return [true, $return]; } function getRandomFloat($min = 40, $max = 43) { // 生成一个在[0, 100)范围内的随机整数(乘以100是为了扩大范围,便于计算) $randomInt = mt_rand(0, 99); // 将随机整数转换为浮点数,并乘以范围(45-40),然后加上最小值40 $randomFloat = ($randomInt / 100) * ($max - $min) + $min; // 返回两位小数 return round($randomFloat, 2); } /** * 用于计算时间 * @param $minute * @return string */ public function calTimeReturnMin($minute){ return number_format($minute * 1.5 / 60,2); } function returnDays($time = [], $is_mirco_time = true){ // 示例时间戳 $timestamp1 = $time[0]; $timestamp2 = $time[1]; // 计算时间差 $difference = abs($timestamp2 - $timestamp1); // 将时间差转换为天数 $days = floor($difference / (60 * 60 * 24)); if($is_mirco_time) $days = $days / 1000; return $days; } }