jarntestd/timerange

在PHP中比较和循环时间范围。

1.0.3 2014-10-28 12:07 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:03:00 UTC


README

在PHP中比较和循环时间范围。

安装

手动安装:将timerange.php复制到您的项目中。

使用Composer安装

composer.phar require jarnstedt/timerange

示例

创建TimeRange对象

use TimeRange;

// Create a new TimeRange
$timeRange1 = new TimeRange('2013-03-31 00:00:00', '2013-04-01 01:09:00');

// You can also use PHP DateTime objects
$start = new DateTime('2000-01-01');
$end = new DateTime('2000-01-05');
$timeRange2 = new TimeRange($start, $end);

循环TimeRange

TimeRange支持循环分钟、小时、天和月。

// Echo all days in time range
foreach ($timeRange1->getDays() as $datetime) {
  echo $datetime->format('Y-m-d')."<br>";
}

// Echo every other day in time range backwards
foreach ($timeRange1->getDays(2, TimeRange::BACKWARD) as $datetime) {
  echo $datetime->format('Y-m-d')."<br>";
}

// Echo all minutes
foreach ($timeRange1->getMinutes() as $datetime) {
  echo $datetime->format('Y-m-d H:i')."<br>";
}

检查两个TimeRange是否有重叠

$timeRange1 = new TimeRange('2013-03-31 00:00', '2013-04-01 01:09');
$timeRange2 = new TimeRange('2013-01-01 12:30', '2013-01-05 14:00');

if ($timeRange1->overlaps($timeRange2)) {
  echo "Ranges overlap";
}

// Check if date overlaps the TimeRange
if ($timeRange1->overlaps("2013-04-01", TimeRange::DAY)) {
  ...
}

更改范围开始或结束

$timeRange = new TimeRange('2013-03-31 00:00', '2013-04-01 01:09');
$timeRange->setStart('2013-02-28');
$timeRange->setEnd('2013-03-03');

运行单元测试

http://phpunit.de/ 下载phpunit,并在项目目录中运行

php phpunit.phar