PHP 在多个日期范围内查找 N 年内的差距

标签 php datetime range

取多维数组如

array(
    array('begin' => '2006-01-01', 'finish' => '2006-02-28'),
    array('begin' => '2006-03-01', 'finish' => '2006-06-30'),
    array('begin' => '2006-08-01', 'finish' => '2007-12-30'),
    array('begin' => '2007-01-01', 'finish' => '2016-12-30'),
);

我正在尝试找出处理范围和重叠程度不同的第 N 个数组的最佳方法,以查看在 N 年的过程中是否存在差距。我目前的要求是一个月。但我目前根本无法解决这个问题。无需经过一系列嵌套的 foreaches,这些嵌套 foreach 最终让我陷入困境,并且处理更大的数据集的成本太高。

最佳答案

此代码有望在 O(n) 内,并假定它是示例中的有序数组。

我曾经使用过这种日期格式可以作为字符串进行比较并给出相同的结果,就好像您使用过复杂的日期对象一样。

// $a is your multidimensional array as above

$gap = array();
for($i=1; $i<sizeof($a); $i++){
   $gap[$i] = $a[$i-1]['finish'] < $a[$i]['begin'];
}

$gap 包含一个数组或 bool 值,指示在哪些索引处存在间隙。

关于PHP 在多个日期范围内查找 N 年内的差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41153755/

相关文章:

C# IndexOutOfRange 问题,可能很简单

php - 加上session_start();可以吗?到我整个网站的顶部?

php - 我如何将此 UTF-8 字符串编码为 ASCII 以将其插入 latin1 数据库?

php - 亚马逊 AWS 上的虚拟主机(PHP + MySQL)

php - 如何将时间增加 15 分钟

javascript - 在 moment.js fromNow() 或 from() 中使用时区

Python:给定 UTC 中的当前时间,您如何确定特定时区中一天的开始和结束时间?

PHP从url中删除奇怪的反斜杠

python - Delphi - 映射函数意外输出

javascript - 在 x 和 y 之间但不在 a 和 b 之间生成随机数的最佳方法