123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- namespace addons\qingdongams\model;
- use think\Model;
- use traits\model\SoftDelete;
- use DateTime;
- /**
- *客户附件表
- */
- class WorkorderInspection Extends Model {
- use SoftDelete;
- protected $name = 'qingdongams_workorder_inspection';
- // 开启自动写入时间戳字段
- protected $autoWriteTimestamp = false;
- // 定义时间戳字段名
- protected $createTime = false;
- protected $updateTime = false;
- protected $deleteTime = false;
- /**
- * Undocumented function
- * $params['check_up']; 1 or 0
- * $params['time_up']; 1每天 2每周 3每月 4每季 5每年
- * $params['m']; 月份
- * $params['d']; 天
- * $params['h']; 小时
- * $params['i']; 分钟
- * $params['week']; 分钟
- * @param [type] $data
- * @return void
- */
- public static function getNextTime($w_time,$params){
- // $givenDateTime=date("Y-m-d ".$params['h'].':'.$params['i']."",$w_time);
- $givenDateTime=date("Y-m-d 08:00:00",$w_time);
- if($params['time_up']==1){ // 1每天
- $nextDayTimestamp = strtotime($givenDateTime . ' +1 day');
- return $nextDayTimestamp;
- }else if($params['time_up']==2){ // 2每周
- switch($params['week']){
- case 1:
- $week_time=strtotime($givenDateTime .'next monday');
- break;
- case 2:
- $week_time=strtotime($givenDateTime .'next tuesday');
- break;
- case 3:
- $week_time=strtotime($givenDateTime .'next wednesday');
- break;
- case 4:
- $week_time=strtotime($givenDateTime .'next thursday');
- break;
- case 5:
- $week_time=strtotime($givenDateTime .'next friday');
- break;
- case 6:
- $week_time=strtotime($givenDateTime .'next saturday');
- break;
- case 0:
- $week_time=strtotime($givenDateTime .'next sunday');
- break;
- }
- return $week_time;
- }else if($params['time_up']==3){ // 3每月
- return strtotime($givenDateTime . ' +1 month');
- }else if($params['time_up']==4){ // 4每季
- // 获取当前日期
- $currentDate =date("Y-m-d ".$params['h'].':'.$params['i']."",$w_time);
- // 获取当前月份和季度
- $currentMonth = date('m', strtotime($currentDate));
- $currentQuarter = ceil($currentMonth / 3);
- // 计算下个季度的第一天日期
- $nextQuarter = ($currentQuarter + 1) > 4 ? 1 : ($currentQuarter + 1);
- $nextYear = ($currentQuarter + 1) > 4 ? date('Y', strtotime('+1 year')) : date('Y');
- $nextQuarterStart = date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime($nextYear . '-' . ($nextQuarter * 3 - 2) . '-'.$params['d']));
- return strtotime($nextQuarterStart);
- }else if($params['time_up']==5){ // 5每年
- // 获取当前年份
- $currentYear = date('Y',$w_time);
- // 计算下一年的2月5日
- $nextYear = $currentYear + 1;
- $nextDate = $nextYear . '-'.$params['m'].'-'.$params['d'].' '.$params['h'].':'.$params['i'];
- return strtotime($nextDate);
- }
- }
- /**
- * Undocumented function
- * $params['check_up']; 1 or 0
- * $params['time_up']; 1每天 2每周 3每月 4每季 5每年
- * $params['m']; 月份
- * $params['d']; 天
- * $params['h']; 小时
- * $params['i']; 分钟
- * $params['week']; 分钟
- * @param [type] $data
- * @return void
- */
- public static function getTime($params){
-
- if($params['time_up']==1){ // 1每天
- $w_time=date("Y-m-d ".$params['h'].':'.$params['i']."",strtotime("+1 day"));
- return strtotime($w_time);
- }else if($params['time_up']==2){ // 2每周
- switch($params['week']){
- case 1:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next monday'));
- break;
- case 2:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next tuesday'));
- break;
- case 3:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next wednesday'));
- break;
- case 4:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next thursday'));
- break;
- case 5:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next friday'));
- break;
- case 6:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next saturday'));
- break;
- case 0:
- $week_time=date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime('next sunday'));
- break;
- }
-
- return strtotime($week_time);
- }else if($params['time_up']==3){ // 3每月
- // 获取当前年份和月份
- $currentYear = date('Y');
- $currentMonth = date('m');
- // 构造下个月的日期
- $nextMonth = date('Y-m', strtotime($currentYear . '-' . $currentMonth . ' +1 month'));
- // 构造下个月的10号日期
- $nextMonthth = $nextMonth . '-'.$params['d'].' '.$params['h'].':'.$params['i'];
- return strtotime($nextMonthth);
- }else if($params['time_up']==4){ // 4每季
- // 获取当前日期
- $currentDate = date('Y-m-d');
- // 获取当前月份和季度
- $currentMonth = date('m', strtotime($currentDate));
- $currentQuarter = ceil($currentMonth / 3);
- // 计算下个季度的第一天日期
- $nextQuarter = ($currentQuarter + 1) > 4 ? 1 : ($currentQuarter + 1);
- $nextYear = ($currentQuarter + 1) > 4 ? date('Y', strtotime('+1 year')) : date('Y');
- $nextQuarterStart = date("Y-m-d ".$params['h'].':'.$params['i']."", strtotime($nextYear . '-' . ($nextQuarter * 3 - 2) . '-'.$params['d']));
- return strtotime($nextQuarterStart);
- }else if($params['time_up']==5){ // 5每年
- // 获取当前年份
- $currentYear = date('Y');
- // 计算下一年的2月5日
- $nextYear = $currentYear + 1;
- $nextDate = $nextYear . '-'.$params['m'].'-'.$params['d'].' '.$params['h'].':'.$params['i'];
- return strtotime($nextDate);
- }
-
- }
- }
|