sammycorgi/laravel-collection-time-filter

使用预设间隔过滤laravel集合到不同的间隔

dev-master 2021-01-18 12:26 UTC

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 接口的类。