Heim > Artikel > Backend-Entwicklung > Es wird eine Beurteilungsfunktion benötigt, um zurückzugeben, ob die Zeit legal ist oder nicht, PHP
Sie müssen eine Funktion isValidDate($date) schreiben, die Bedingungen sind wie folgt:
<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>
Als ich die zweite Bedingung schrieb, stellte ich fest, dass es anscheinend ein Problem mit der von der Bedingung abgedeckten Zeit gab. Ich würde gerne Ihre Meinung hören.
Sie müssen eine Funktion isValidDate($date) schreiben, die Bedingungen sind wie folgt:
<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>
Als ich die zweite Bedingung schrieb, stellte ich fest, dass es anscheinend ein Problem mit der von der Bedingung abgedeckten Zeit gab. Ich würde gerne Ihre Meinung hören.
Warum haben Sie das Gefühl, dass Sie andere dazu zwingen wollen, Fragen im Vorstellungsgespräch zu stellen? Da ich 123 geordnet auflisten kann, sollte die Umsetzung kein Problem darstellen. . .
Carbon installieren
<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>
Ändern Sie einfach den Titel 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>