ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] 根据身份证判断禁止未成年人下单 ~~~ private function prohibitionOfMinorsPlaceOrder($idCard) { if (empty($idCard)) { return false; } $year = (int)date('Y'); $day = (int)date('md'); if (strlen($idCard) == 15) { // 2000年之后应该没有15位了 $age = $year - (int)('19' . substr($idCard, 6, 2)); $diffDay = $day - (int)substr($idCard, 8, 4); } else { $age = $year - (int)substr($idCard, 6, 4); $diffDay = $day - (int)substr($idCard, 10, 4); } // 计算不能只按照年份直接加减,考虑到月份和日。不足的就减一岁 return $diffDay > 0 ? $age : $age - 1; } ~~~ ~~~ // 禁止未成年人下单 $isMinor = $this->prohibitionOfMinorsPlaceOrder($this->bizContent['id_card']); if ($isMinor && $isMinor < 18) { $this->error = OrderResponse::responseArray(BLACK_LIST_USER, '未成年人禁止下单,如有问题请联系平台客服。'); return $this; } ~~~