diff --git a/app/AdminController.php b/app/AdminController.php index 778d1c14b7d06d455c6351e49348e927b8b67db3..ee20800ad1993b57a0d54506988dbdfe885ad608 100644 --- a/app/AdminController.php +++ b/app/AdminController.php @@ -452,7 +452,6 @@ class AdminController extends BaseController break; case 'date'; case 'time'; - case 'datetime'; $value = str_replace(',', '-', $value); if (strpos($value, '-')) { @@ -475,6 +474,31 @@ class AdminController extends BaseController $where[] = [$field, '=', $value]; } + break; + case 'datetime'; + $value = str_replace(',', '-', $value); + if (strpos($value, '-')) { + $arr = explode(' - ', $value); + + if (!array_filter($arr)) { + continue 2; + } + if ($arr[0] === '') { + $exp = '<= TIME'; + $arr = $arr[1]; + } elseif ($arr[1] === '') { + $exp = '>= TIME'; + $arr = $arr[0]; + }else{ + $arr[0]=self::format_datetime($arr[0]); + $arr[1]=self::format_datetime($arr[1],'+'); + $where[] = [$field, '>= TIME', $arr[0]]; + $where[] = [$field, '<= TIME', $arr[1]]; + } + + } else { + $where[] = [$field, '=', $value]; + } break; case 'blob'; break; @@ -551,4 +575,25 @@ class AdminController extends BaseController return \response($template, $code); } + + /** + * 格式化datetime + * @param $day_time string 日期时间 字符串 + * @param $op string 进行补全操作方向 + */ + protected function format_datetime(string $day_time, string $op='-'): string + { + if(strtotime($day_time) && strlen($day_time)==10) + { + if($op=='+') + { + return $day_time . " 23:59:59"; + } + return $day_time . " 00:00:00"; + }elseif(strtotime($day_time)){ + return $day_time; + }else{ + return $this->error('传入的变量值 不是时间格式字符串'); + } + } } \ No newline at end of file