| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- namespace Elastica\Aggregation;
- /**
- * Class DateHistogram.
- *
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html
- */
- class DateHistogram extends Histogram
- {
- /**
- * Set time_zone option.
- *
- * @param string
- *
- * @return $this
- */
- public function setTimezone($timezone)
- {
- return $this->setParam('time_zone', $timezone);
- }
- /**
- * Adjust for granularity of date data.
- *
- * @param int $factor set to 1000 if date is stored in seconds rather than milliseconds
- *
- * @return $this
- */
- public function setFactor($factor)
- {
- return $this->setParam('factor', $factor);
- }
- /**
- * Set offset option.
- *
- * @param string
- *
- * @return $this
- */
- public function setOffset($offset)
- {
- return $this->setParam('offset', $offset);
- }
- /**
- * Set the format for returned bucket key_as_string values.
- *
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregations-bucket-daterange-aggregation.html#date-format-pattern
- *
- * @param string $format see link for formatting options
- *
- * @return $this
- */
- public function setFormat($format)
- {
- return $this->setParam('format', $format);
- }
- /**
- * Set extended bounds option.
- *
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-histogram-aggregation.html#search-aggregations-bucket-histogram-aggregation-extended-bounds
- *
- * @param string $min see link for formatting options
- * @param string $max see link for formatting options
- *
- * @return $this
- */
- public function setExtendedBounds($min = '', $max = '')
- {
- $bounds = [];
- $bounds['min'] = $min;
- $bounds['max'] = $max;
- // switch if min is higher then max
- if (strtotime($min) > strtotime($max)) {
- $bounds['min'] = $max;
- $bounds['max'] = $min;
- }
- return $this->setParam('extended_bounds', $bounds);
- }
- }
|