--- a/application/api/service/Identity.php +++ b/application/api/service/Identity.php @@ -47,10 +47,25 @@ $query->whereLike('identity_type', '%' . $keyword . '%'); } - return $query->field(['id', 'identity_type', 'remark', 'create_by', 'create_time', 'update_time']) + $data = $query->field(['id', 'identity_type', 'remark', 'create_by', 'create_time', 'update_time']) ->order('id', 'desc') ->paginate($pageSize, false, ['page' => $page]) ->toArray(); + if (ltrim((string)config('database.type'), '\\') === \app\cores\database\Dm::class) { + foreach ($data['data'] as &$row) { + foreach (['create_time', 'update_time'] as $field) { + $value = $row[$field] ?? null; + if (is_string($value) + && preg_match('/^((\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}))\.0{1,6}$/D', $value, $match) + && (int)$match[2] >= 1000 && checkdate((int)$match[3], (int)$match[4], (int)$match[2]) + && (int)$match[5] <= 23 && (int)$match[6] <= 59 && (int)$match[7] <= 59) { + $row[$field] = $match[1]; + } + } + } + unset($row); + } + return $data; } /**