簡體   English   中英

動態獲取php數組中缺失的日期值

[英]Get missing date values from array in php dynamically

我們正在創建一個系統,員工需要更新他們的每日狀態報告。 該系統的基本目的是記錄他們沒有更新狀態報告的缺失日期。

我找到了一種方法,通過檢查 2 個數組值之間的天差,然后計算並顯示天數。 但是,我不確定如何在 2 個數組值之間動態執行此操作。

這是我與輸出一起使用的代碼:

//id of the person updating the DSR
                    $userid = $_id;

                    // Array to fetch all the DSR by specific user
                    $fine = getDSRbyUserIdOrderDate($userid);

                    $today = date('d-m-Y');
                    $tomorrow = date("d-m-Y", strtotime($today . " +1 day"));

                    $ok = count($fine) - 1;

                    //Array to get dates
                    $d1 = $fine[0]['date'];
                    $d2 = $fine[1]['date'];
                    $d3 = $fine[2]['date'];

                    // Function call to find date difference 
                    $dateDiff = dateDiffInDays($d1, $d2); 
                    $dateDiff1 = dateDiffInDays($d2, $d3); 

                    echo "<h4 style='color:red'>You have missed the DSR on the following dates.</h4>";

                    for($p = 1; $p < $dateDiff; $p++){
                          $missingdate = date("d-m-Y", strtotime($d1 . " +$p day"));    
                          echo "<span style='color:red'>$missingdate</span>";
                          echo "<br />";   
                    }  

                    for($p = 1; $p < $dateDiff1; $p++){
                          $missingdate = date("d-m-Y", strtotime($d2 . " +$p day"));    
                          echo "<span style='color:red'>$missingdate</span>";
                          echo "<br />";   
                    }  


                    if($d2 != $today){
                        echo "<span style='color:red'>$today <i>- Kindly update DSR before midnight</i></span> "; 
                        echo "<br />";
                    }

輸出: 在此處輸入圖片說明

我會首先按日期創建一個條目列表,然后相應地“繪制”它。

$starting_date = new DateTime('2019-11-23');
$num_days = 10

$from_db_by_date = [];
foreach ($fine as $entry) {
  $from_db_by_date[$entry['date']] = $entry;
}

$all_by_date = [];
for ($i = 0; $i < $num_days; $i++) {
  $date_str = $starting_date->format('d-m-Y');
  $all_by_date[$date_str] = $from_db_by_date[$date_str] ?: null;
  $starting_date->modify('+1 day');
}

現在您可以遍歷$all_by_date ,檢查條目是否為null並采取相應措施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM