亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從外部訪問foreach中的數組?

如何從外部訪問foreach中的數組?

PHP
繁星coding 2023-08-11 17:22:28
我的記錄表中有StartTime和EndTime列,它們包含時間數據,我試圖檢查輸入上寫入的時間是否在StartTime和之間EndTime。在 Records 表中,一條記錄的StartTime: 09:00和EndTime: 12:00以及它們的周期為10:00 , 11:00因此,如果在輸入中寫入 10:00,PHP 必須回顯:“這個小時已經存在!”同時,我不僅檢查表中某一行的時間,還檢查其他記錄行的時間。我使用whileandforeach循環執行此操作,但我找不到如何if正確檢查語句中的結果數組,因此我的if語句不起作用。如何準確檢查我在循環中創建的周期foreach?PHP<?php        $stmt1 = $db->query('SELECT StartTime, EndTime FROM records');        $periods[] = "";    while($row = $stmt1->fetch()){        echo '<li>'.$row['StartTime'].' - '.$row['EndTime'].'</li>';        $start = new DateTime($row['StartTime']);        $interval = new DateInterval('PT1H');        $end = new DateTime($row['EndTime']);                       $period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);        foreach ($period as $date) {            $periods[] = $date->format('H:i');          }                       }                   echo "<br>";        if(isset($_POST['submit'])){                //Date validations        $inputTime = new DateTime($_POST['inputTime']);        if ($inputTime == $periods) {            echo "This hour already exists!";        }                                                               }?>HTML 表單<form action="index.php" method="post">    <p>Time</p>    <input type="text" id="inputTime" name="inputTime">    <br>        <input type="submit" name="submit" value="Check"></form> 
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我會使用簡單的時間戳,而不是DateTime對象。


$stmt1 = $db->query('SELECT StartTime, EndTime FROM records');


$periods = [];


while ($row = $stmt1->fetch()){

    echo '<li>'.$row['StartTime'].' - '.$row['EndTime'].'</li>';


    $periods[] = [strtotime($row['StartTime']), strtotime($row['EndTime'])];               

}               


echo "<br>";


if (isset($_POST['submit'])){

    

    //Date validations

    $inputTime = strtotime($_POST['inputTime']);


    $exists = false;


    foreach ($periods as $period) {

        if ($inputTime >= $period[0] && $inputTime <= $period[1]) {

            $exists = true;

            break;

        }

    }

                

    if ($exists) {

        echo "This hour already exists!";

    }

}


查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號