首页 > 解决方案 > 在循环php中查找日期是否属于日期范围[编辑]

问题描述

id          id_emp   id_pola  start            end  
------  ----------  -------  -------------  -----------------
    12        5646       28    2021-07-01     2021-07-06       
    13        5646       29    2021-07-07     2021-07-12       
    14        5646       30    2021-07-13     2021-07-18       
    15        5646       28    2021-07-21     2021-07-26       
    16        5646       29    2021-07-27     2021-07-02       

我有这样的数据库,我想找出某个日期是否属于到目前为止我有功能的数据之一

public static function istrue($date) {
$shifter = query data;
    if ($shifter) {
            $date = new DateTime ($date);
    
                    foreach ($shifter as $k => $v) {
                    $start = new DateTime ($v->start);
                    $end = new DateTime ($v->end);
                    if (($date >= $start) && ($date <= $end)){
                            return true;
                        } else {
                            return false;
                        }
                }
}

对于日期 2021-07-01 到 2021-07-06,它返回 true,但为什么像 2021-07-07 或 2021-07-21 这样的较大日期总是返回 false?我丢失的代码在哪里。为什么它不循环?如果有任何建议或更好的代码。提前致谢

编辑了我尝试将日期从 1 循环到 xxx 并尝试查找其中存在的 xxx 日期的情况。计划班次

标签: phpmysql

解决方案


public static function istrue($date) {
$shifter = query data;
    if ($shifter) {
            $date = new DateTime ($date);
    
                    foreach ($shifter as $k => $v) {
                    $start = new DateTime ($v->start);
                    $end = new DateTime ($v->end);
                    if (($date >= $start) && ($date <= $end)){
                            $return = "true";
                        } 
                }
return $return;
}

像这样用修改脚本来解决,谢谢老兄,即使我仍然很困惑,为什么return true 总是返回真而不是假


推荐阅读