sammycorgi / laravel-collection-time-filter
使用预设间隔过滤laravel集合到不同的间隔
Requires
- php: ^7.4
- laravel/framework: >=5.7 || >=6.0 || >=7.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-18 20:28:13 UTC
README
通过时间过滤laravel集合以具有特定间隔
当前可以将24小时的数据点集合过滤到12小时或更短时间内的任何所需分钟间隔,只要间隔是24小时的约数。
安装
composer require sammycorgi/laravel-collection-time-filter
使用
将一个包含 LaravelCollectionTimeFilter\HasTime
对象的集合传递给一个 LaravelCollectionTimeFilter\CollectionTimeFilterMinutes
的新实例,同时传递所需的分钟间隔和现有间隔。现有间隔并不重要,它只是确保所需的间隔更大。
请注意,输入集合 必须 按时间升序排序。
调用此对象的 getFilteredCollection()
方法以将结果过滤到所需间隔。
这将找到给定间隔的最近值,从00:00开始,到下一天的00:00结束(减去所需的间隔),总共 24 * intervalsPerHour
个间隔。
返回类型
默认情况下,返回的集合类型将与过滤器实例化的类型相同。要更改此行为,只需扩展类并修改 getNewCollection()
方法。
'空值'
如果过滤器无法为给定间隔找到合适的时间,它将默认在返回数组中插入一个空值。
这可以通过在构造函数中将最后一个参数传递为 true
来更改,以在此点插入间隔时间。
默认情况下,这将是一个 LaravelCollectionTimeFilter\DateWrapper
对象的实例。扩展类并修改 getWriteNullValuesObject()
方法以更改此行为。它必须仍然返回一个实现 LaravelCollectionTimeFilter\Contracts\HasTime
接口的类。