use*_*582 6 php date date-range
我一直在寻找这个,但答案似乎无处可去.这是问题所在:
说,我有两个日期范围.
$daterange1 = 2012-04-20 till 2012-04-28
$daterange2 = 2012-04-18 till 2012-05-01
Run Code Online (Sandbox Code Playgroud)
现在,我想知道daterange2是否在daterange1之内.但是,正如您所看到的,daterange2仅部分位于daterange1内.是否有任何方法可以获得3个变量,例如:
我知道这听起来有点模糊,但我真的不知道如何解释它不同.
这是使用PHP DateTime类的示例.请注意,如果将无效的日期字符串传递DateTime::__construct()给函数将抛出异常,那么如果您担心这一点,则应该实现try/catch块.另外,我使用PHP min和max函数,因此指定日期的顺序无关紧要.
$daterange1 = array('2012-04-20', '2012-04-28');
$daterange2 = array('2012-04-18', '2012-05-01');
$range_min = new DateTime(min($daterange1));
$range_max = new DateTime(max($daterange1));
$start = new DateTime(min($daterange2));
$end = new DateTime(max($daterange2));
if ($start >= $range_min && $end <= $range_max) {
echo 'woot!';
} else {
echo 'doh!';
}
Run Code Online (Sandbox Code Playgroud)
那么,从逻辑上讲,你可以将范围的要求分解为另一个范围.
在以下情况下,范围仅部分在另一范围内:
如果其中任何一个或两个都为真,那么范围就在彼此之内.
| 归档时间: |
|
| 查看次数: |
2772 次 |
| 最近记录: |