wwtg99 / date_period
该包最新版本(0.1.3)没有可用的许可证信息。
生成日期时间段。
0.1.3
2017-09-22 05:31 UTC
Requires
- php: >=5.6.4
- nesbot/carbon: ~1.18
Requires (Dev)
- fzaninotto/faker: ~1.4
- phpunit/phpunit: ~5.7
This package is not auto-updated.
Last update: 2024-09-15 04:42:03 UTC
README
生成一系列日期时间段,通常用于统计。基于日、周、月、年等时间段切分。
安装
composer require wwtg99/date_period
或者
"wwtg99/date_period": "*"
添加到composer.json
测试
在tests中的单元测试文件。在PHP 7.1上进行了测试。
用法
方法
- DatePeriod::getPeriodArray($datePeriod, $start, $end, $dateFormat)
- DatePeriod::getPeriodGenerator($datePeriod, $start, $end, $dateFormat)
参数
- $datePeriod: 要分隔的周期,日、周、月、年...
- $start: 开始时间字符串
- $end: 结束时间字符串
- $dateFormat: 日期格式(默认)或日期时间格式
示例
生成从起始日(包含)到结束日(不包含)之间的日数组
$start = '2017-09-01'; $end = '2017-09-10'; $arr = DatePeriod::getPeriodArray(DatePeriod::TYPE_PERIOD_DAY, $start, $end); foreach ($arr as $item) { echo "Title: ", $item->getTitle(), " From: ", $item->getStartString(), " To: ", $item->getEndString(), "\n"; }
输出
Title: 2017-09-01 From: 2017-09-01 To: 2017-09-02
Title: 2017-09-02 From: 2017-09-02 To: 2017-09-03
Title: 2017-09-03 From: 2017-09-03 To: 2017-09-04
Title: 2017-09-04 From: 2017-09-04 To: 2017-09-05
Title: 2017-09-05 From: 2017-09-05 To: 2017-09-06
Title: 2017-09-06 From: 2017-09-06 To: 2017-09-07
Title: 2017-09-07 From: 2017-09-07 To: 2017-09-08
Title: 2017-09-08 From: 2017-09-08 To: 2017-09-09
Title: 2017-09-09 From: 2017-09-09 To: 2017-09-10
Title: 2017-09-10 From: 2017-09-10 To: 2017-09-11
生成从起始日(包含)到结束日(不包含)之间的月数组
$start = '2017-05-11'; $end = '2017-09-10'; $arr = DatePeriod::getPeriodArray(DatePeriod::TYPE_PERIOD_MONTH, $start, $end); foreach ($arr as $item) { echo "Title: ", $item->getTitle(), " From: ", $item->getStartString(), " To: ", $item->getEndString(), "\n"; }
输出
Title: 2017-05 From: 2017-05-01 To: 2017-06-01
Title: 2017-06 From: 2017-06-01 To: 2017-07-01
Title: 2017-07 From: 2017-07-01 To: 2017-08-01
Title: 2017-08 From: 2017-08-01 To: 2017-09-01
Title: 2017-09 From: 2017-09-01 To: 2017-10-01
使用生成器而不是数组(通常用于非常长的时间段)
生成器支持PHP 7.0+
$start = '2017-07-11'; $end = '2017-09-10'; foreach (DatePeriod::getPeriodGenerator(DatePeriod::TYPE_PERIOD_WEEK, $start, $end) as $item) { echo "Title: ", $item->getTitle(), " From: ", $item->getStartString(), " To: ", $item->getEndString(), "\n"; }
输出
Title: 2017-07 W2 From: 2017-07-10 To: 2017-07-17
Title: 2017-07 W3 From: 2017-07-17 To: 2017-07-24
Title: 2017-07 W4 From: 2017-07-24 To: 2017-07-31
Title: 2017-07 W5 From: 2017-07-31 To: 2017-08-07
Title: 2017-08 W1 From: 2017-08-07 To: 2017-08-14
Title: 2017-08 W2 From: 2017-08-14 To: 2017-08-21
Title: 2017-08 W3 From: 2017-08-21 To: 2017-08-28
Title: 2017-08 W4 From: 2017-08-28 To: 2017-09-04
Title: 2017-09 W1 From: 2017-09-04 To: 2017-09-11
支持的周期
- 秒:从开始到结束的每一秒
- 分钟:从开始到结束的每一分钟
- 小时:从开始到结束的每一小时
- 日:从开始到结束的每一天
- 周:从开始到结束的每一周
- 月:从开始到结束的每一月
- 季度:从开始到结束的每一个季度
- 年:从开始到结束的每一年
- 无:与DateInterval相同