【问题标题】:Check if one date range is within another检查一个日期范围是否在另一个日期范围内
【发布时间】:2015-06-23 13:31:51
【问题描述】:

例如,我有这个范围:2015-06-012015-06-03

现在我要在我的表单中编辑这个日期。但是,表单会检查该范围是否与另一个范围重叠(您不能在同一天输入两片叶子)。

现在我用它来验证它不会与另一个假期重叠:

if($startdate !== $start_db && $enddate !== $end_db){
    if($startdate <= $end_db && $enddate >= $start_db){
        $error[] = 'Leave Overlaps with another leave.';
    }
}

当我想将范围从2015-06-01更改为2015-06-02时出现问题,然后它说它重叠,因为它不知道它是同一个离开。

如何检查新范围是否在数据库中保存的范围内?

【问题讨论】:

    标签: php date


    【解决方案1】:

    您必须检查每个开始日期和结束日期是否在另一个开始日期和结束日期之间。所以一共比较了四次。

    if(
        // Start date is in first date range
        ($startdate >= $start_db && $startdate <= $end_db)
        ||
        // end date is in first date range
        ($enddate >= $start_db && $enddate <= $end_db)
    ){
         $error[] = 'Leave Overlaps with another leave.';
     }
    

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      相关资源
      最近更新 更多