isValidDate($date) 함수를 작성해야 하며 조건은 다음과 같습니다.
<code>function isValidDate($date) { //1. $date 是本周时 + time()要在$date前一天的18:00之前 = true //2. $date 为下周时 + time()要在本周四下午六点后 = true //3. 其余返回false. (注:一周从周一开始) $orderTime = strtotime($date); $now = time(); if(date('W',$orderTime) == date('W',$now) && (strtotime($date,$now) - $now) > 86400/4) //预订前一天的18:00,截止预订 { return true; } if(date('W',$orderTime) == date('W',$now) + 1 && $now > strtotime('saturday 18:05 -2 day',$now)) //预订第二周,周四下午六点及之后 { return true; } return false; }</code>
그 중 두 번째 조건을 작성했을 때 조건 적용 시간에 문제가 있는 것 같다는 의견을 듣고 싶습니다.
isValidDate($date) 함수를 작성해야 하며 조건은 다음과 같습니다.
<code>function isValidDate($date) { //1. $date 是本周时 + time()要在$date前一天的18:00之前 = true //2. $date 为下周时 + time()要在本周四下午六点后 = true //3. 其余返回false. (注:一周从周一开始) $orderTime = strtotime($date); $now = time(); if(date('W',$orderTime) == date('W',$now) && (strtotime($date,$now) - $now) > 86400/4) //预订前一天的18:00,截止预订 { return true; } if(date('W',$orderTime) == date('W',$now) + 1 && $now > strtotime('saturday 18:05 -2 day',$now)) //预订第二周,周四下午六点及之后 { return true; } return false; }</code>
그 중 두 번째 조건을 작성했을 때 조건 적용 시간에 문제가 있는 것 같다는 의견을 듣고 싶습니다.
왜 다른 사람에게 면접 질문을 강요한다고 생각하시나요? 우리는 모두 123개를 순서대로 나열할 수 있으므로 구현에는 문제가 없어야 합니다. . .
카본 설치
<code class="php">use Carbon\Carbon; /** * 校验日期 * @param string $date 日期 * @return boolean */ function isValidDate($date) { // $date 是本周时 + time()要在$date前一天的18:00之前 = true if (Carbon::parse($date)->format('W') == Carbon::now()->format('W') && time() < Carbon::parse($date)->subDay(1)->hour(18)->minute(0)->timestamp ) { return true; } // $date 为下周时 + time()要在本周四下午六点后 = true elseif ( Carbon::parse($date)->format('W') == Carbon::now()->addWeek(1)->format('W') && time() > Carbon::now()->startOfDay()->addDay(3)->hour(18)->minute(0)->timestamp ) { return true; } return false; }</code>
제목만 바꾸면 됩니다if 语句 return
<code>function isValidDate($date) { //1. $date 是本周时 + time()要在$date前一天的18:00之前 = true //2. $date 为下周时 + time()要在本周四下午六点后 = true //3. 其余返回false. (注:一周从周一开始) $orderTime = strtotime($date); $now = time(); if(date('W',$orderTime) === date('W',$now)) // 当前周 { // time()要在$date前一天的18:00之前 = true return $now < strtotime(date('Y-m-d 18:00:00',strtotime("$date -1 day"))); } if(date('W',$orderTime) === (date('W',$now) + 1)) // 下周 { // time()要在本周四下午六点后 = true return $now > strtotime(date('Y-m-d 18:00:00',strtotime( '+'. 4-date('w') .' days' ))); } return false; }</code>