jarntestd / timerange
在PHP中比较和循环时间范围。
1.0.3
2014-10-28 12:07 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
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