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); } }