Skip to content

Commit db89fe8

Browse files
committed
Added Elastica\Query\QueryString::setTimezone
1 parent 0c3da98 commit db89fe8

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

changes.txt

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ CHANGES
22

33
2015-04-07
44
- [BC break] Elastica\Query\QueryString::setLowercaseExpandedTerms removed
5+
- Added Elastica\Query\QueryString::setTimezone
56

67
2015-04-06
78
- Update Elasticsearch version to 1.5

lib/Elastica/Query/QueryString.php

+11
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,17 @@ public function setRewrite($rewrite = "")
242242
return $this->setParam('rewrite', $rewrite);
243243
}
244244

245+
/**
246+
* Set timezone option.
247+
*
248+
* @param string $timezone
249+
* @return $this
250+
*/
251+
public function setTimezone($timezone)
252+
{
253+
return $this->setParam('timezone', $timezone);
254+
}
255+
245256
/**
246257
* Converts query to array
247258
*

test/lib/Elastica/Test/Query/QueryStringTest.php

+51
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,55 @@ public function testSetQueryInvalid()
123123
$query = new QueryString();
124124
$query->setQuery(array());
125125
}
126+
127+
public function testSetTimezone()
128+
{
129+
$timezone = 'Europe/Paris';
130+
$text = 'date:[2012 TO 2014]';
131+
132+
$query = new QueryString($text);
133+
$query->setTimezone($timezone);
134+
135+
$expected = array(
136+
'query_string' => array(
137+
'text' => $text,
138+
'timezone' => $timezone,
139+
),
140+
);
141+
142+
$this->assertEquals($expected, $query->toArray());
143+
$this->assertInstanceOf('Elastica\Query\QueryString', $query->setTimezone($timezone));
144+
}
145+
146+
public function testSetTimezoneWorks()
147+
{
148+
$index = $this->_createIndex();
149+
$type = $index->getType('timezone_test');
150+
151+
$type->setMapping(array(
152+
'tweet_date' => array('type' => 'datetime', 'format' => 'yyyy-MM-dd HH:mm Z')
153+
));
154+
155+
$documents = array(
156+
new Document(1, array(
157+
'tweet_date' => '2015-04-07 15:00 Europe/Moscow',
158+
)),
159+
new Document(2, array(
160+
'tweet_date' => '2015-04-08 01:00 Europe/Moscow',
161+
)),
162+
);
163+
164+
$type->addDocuments($documents);
165+
$index->refresh();
166+
167+
$query = new QueryString('tweet_date:[* TO 2015-04-07]');
168+
169+
$query->setTimezone('Europe/Moscow');
170+
$results = $type->search($query);
171+
$this->assertEquals(1, $resultSet->count());
172+
173+
$query->setTimezone('Europe/Paris');
174+
$results = $type->search($query);
175+
$this->assertEquals(2, $resultSet->count());
176+
}
126177
}

0 commit comments

Comments
 (0)