20 $tz = new \DateTimeZone(
'Europe/Amsterdam');
21 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
22 $dt->setTimeZone(
$tz);
24 $elem = $this->vcal->createProperty(
'DTSTART');
25 $elem->setDateTime($dt);
27 $this->assertEquals(
'19850704T013000', (
string)$elem);
28 $this->assertEquals(
'Europe/Amsterdam', (
string)$elem[
'TZID']);
29 $this->assertNull($elem[
'VALUE']);
31 $this->assertTrue($elem->hasTime());
37 $tz = new \DateTimeZone(
'Europe/Amsterdam');
38 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
39 $dt->setTimeZone(
$tz);
41 $elem = $this->vcal->createProperty(
'DTSTART');
42 $elem->setDateTime($dt, $isFloating =
true);
44 $this->assertEquals(
'19850704T013000', (
string)$elem);
45 $this->assertNull($elem[
'TZID']);
47 $this->assertTrue($elem->hasTime());
52 $tz = new \DateTimeZone(
'GMT');
53 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
54 $dt->setTimeZone(
$tz);
56 $elem = $this->vcal->createProperty(
'DTSTART');
57 $elem->setDateTime($dt);
59 $this->assertEquals(
'19850704T013000Z', (
string)$elem);
60 $this->assertNull($elem[
'TZID']);
62 $this->assertTrue($elem->hasTime());
68 $dt = new \DateTime(
'@489288600');
70 $elem = $this->vcal->createProperty(
'DTSTART');
71 $elem->setDateTime($dt);
73 $this->assertEquals(
'19850704T013000Z', (
string)$elem);
74 $this->assertNull($elem[
'TZID']);
76 $this->assertTrue($elem->hasTime());
81 $tz = new \DateTimeZone(
'Europe/Amsterdam');
82 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
83 $dt->setTimeZone(
$tz);
85 $elem = $this->vcal->createProperty(
'DTSTART');
86 $elem->setDateTime($dt);
88 $this->assertEquals(
'19850704T013000', (
string)$elem);
89 $this->assertEquals(
'Europe/Amsterdam', (
string)$elem[
'TZID']);
91 $this->assertTrue($elem->hasTime());
96 $tz = new \DateTimeZone(
'Europe/Amsterdam');
97 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
98 $dt->setTimeZone(
$tz);
100 $elem = $this->vcal->createProperty(
'DTSTART');
101 $elem[
'VALUE'] =
'DATE';
102 $elem->setDateTime($dt);
104 $this->assertEquals(
'19850704', (
string)$elem);
105 $this->assertNull($elem[
'TZID']);
106 $this->assertEquals(
'DATE', (
string)$elem[
'VALUE']);
108 $this->assertFalse($elem->hasTime());
113 $tz = new \DateTimeZone(
'Europe/Amsterdam');
114 $dt = new \DateTime(
'1985-07-04 01:30:00',
$tz);
115 $dt->setTimeZone(
$tz);
117 $elem = $this->vcal->createProperty(
'DTSTART');
118 $elem->setValue($dt);
120 $this->assertEquals(
'19850704T013000', (
string)$elem);
121 $this->assertEquals(
'Europe/Amsterdam', (
string)$elem[
'TZID']);
122 $this->assertNull($elem[
'VALUE']);
124 $this->assertTrue($elem->hasTime());
130 $tz = new \DateTimeZone(
'Europe/Amsterdam');
131 $dt1 = new \DateTime(
'1985-07-04 01:30:00',
$tz);
132 $dt2 = new \DateTime(
'1985-07-04 02:30:00',
$tz);
133 $dt1->setTimeZone(
$tz);
134 $dt2->setTimeZone(
$tz);
136 $elem = $this->vcal->createProperty(
'DTSTART');
137 $elem->setValue([$dt1, $dt2]);
139 $this->assertEquals(
'19850704T013000,19850704T023000', (
string)$elem);
140 $this->assertEquals(
'Europe/Amsterdam', (
string)$elem[
'TZID']);
141 $this->assertNull($elem[
'VALUE']);
143 $this->assertTrue($elem->hasTime());
149 $tz = new \DateTimeZone(
'Europe/Amsterdam');
150 $dt1 = new \DateTime(
'1985-07-04 01:30:00',
$tz);
151 $dt2 = new \DateTime(
'1985-07-04 02:30:00',
$tz);
152 $dt1->setTimeZone(
$tz);
153 $dt2->setTimeZone(
$tz);
155 $elem = $this->vcal->createProperty(
'DTSTART');
156 $elem->setParts([$dt1, $dt2]);
158 $this->assertEquals(
'19850704T013000,19850704T023000', (
string)$elem);
159 $this->assertEquals(
'Europe/Amsterdam', (
string)$elem[
'TZID']);
160 $this->assertNull($elem[
'VALUE']);
162 $this->assertTrue($elem->hasTime());
167 $dt1 =
'19850704T013000Z';
168 $dt2 =
'19850704T023000Z';
170 $elem = $this->vcal->createProperty(
'DTSTART');
171 $elem->setParts([$dt1, $dt2]);
173 $this->assertEquals(
'19850704T013000Z,19850704T023000Z', (
string)$elem);
174 $this->assertNull($elem[
'VALUE']);
176 $this->assertTrue($elem->hasTime());
183 $tz = new \DateTimeZone(
'Europe/Amsterdam');
184 $dt = new \DateTimeImmutable(
'1985-07-04 01:30:00',
$tz);
185 $dt->setTimeZone(
$tz);
187 $elem = $this->vcal->createProperty(
'DTSTART');
188 $elem->setDateTime($dt);
190 $this->assertEquals($elem->getDateTime(), $dt);
196 $elem = $this->vcal->createProperty(
'DTSTART');
197 $dt = $elem->getDateTime();
199 $this->assertNull($dt);
205 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704');
206 $dt = $elem->getDateTime();
208 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
209 $this->assertEquals(
'1985-07-04 00:00:00', $dt->format(
'Y-m-d H:i:s'));
215 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704');
217 $tz = new \DateTimeZone(
'America/Toronto');
218 $dt = $elem->getDateTime(
$tz);
221 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
222 $this->assertEquals(
'1985-07-04 04:00:00', $dt->format(
'Y-m-d H:i:s'));
228 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000');
229 $dt = $elem->getDateTime();
231 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
232 $this->assertEquals(
'1985-07-04 01:30:00', $dt->format(
'Y-m-d H:i:s'));
238 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000');
240 $tz = new \DateTimeZone(
'America/Toronto');
241 $dt = $elem->getDateTime(
$tz);
244 $this->assertInstanceOf(
'DateTimeInterface', $dt);
245 $this->assertEquals(
'1985-07-04 05:30:00', $dt->format(
'Y-m-d H:i:s'));
251 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000Z');
252 $dt = $elem->getDateTime();
254 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
255 $this->assertEquals(
'1985-07-04 01:30:00', $dt->format(
'Y-m-d H:i:s'));
256 $this->assertEquals(
'UTC', $dt->getTimeZone()->getName());
262 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000');
263 $elem[
'TZID'] =
'Europe/Amsterdam';
265 $dt = $elem->getDateTime();
267 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
268 $this->assertEquals(
'1985-07-04 01:30:00', $dt->format(
'Y-m-d H:i:s'));
269 $this->assertEquals(
'Europe/Amsterdam', $dt->getTimeZone()->getName());
278 $elem = $this->vcal->createProperty(
'DTSTART',
'bla');
279 $dt = $elem->getDateTime();
285 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000');
286 $elem[
'TZID'] =
'/freeassociation.sourceforge.net/Tzfile/Europe/Amsterdam';
289 $event = $this->vcal->createComponent(
'VEVENT');
292 $timezone = $this->vcal->createComponent(
'VTIMEZONE');
293 $timezone->TZID =
'/freeassociation.sourceforge.net/Tzfile/Europe/Amsterdam';
294 $timezone->{
'X-LIC-LOCATION'} =
'Europe/Amsterdam';
296 $this->vcal->add($event);
297 $this->vcal->add($timezone);
299 $dt = $elem->getDateTime();
301 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
302 $this->assertEquals(
'1985-07-04 01:30:00', $dt->format(
'Y-m-d H:i:s'));
303 $this->assertEquals(
'Europe/Amsterdam', $dt->getTimeZone()->getName());
309 $default = date_default_timezone_get();
310 date_default_timezone_set(
'Canada/Eastern');
312 $elem = $this->vcal->createProperty(
'DTSTART',
'19850704T013000');
313 $elem[
'TZID'] =
'Moon';
316 $event = $this->vcal->createComponent(
'VEVENT');
319 $timezone = $this->vcal->createComponent(
'VTIMEZONE');
320 $timezone->TZID =
'Moon';
321 $timezone->{
'X-LIC-LOCATION'} =
'Moon';
324 $this->vcal->add($event);
325 $this->vcal->add($timezone);
327 $dt = $elem->getDateTime();
329 $this->assertInstanceOf(
'DateTimeImmutable', $dt);
330 $this->assertEquals(
'1985-07-04 01:30:00', $dt->format(
'Y-m-d H:i:s'));
331 $this->assertEquals(
'Canada/Eastern', $dt->getTimeZone()->getName());
332 date_default_timezone_set(
$default);
338 $dtStart = $this->vcal->createProperty(
'DTSTART',
new \
DateTime(
'2013-06-07 15:05:00'));
339 $dtStart[
'VALUE'] =
'DATE';
341 $this->assertEquals(
"DTSTART;VALUE=DATE:20130607\r\n", $dtStart->serialize());
347 $exDate = $this->vcal->createProperty(
'EXDATE',
'-00011130T143000Z');
350 $this->assertEquals(3,
$messages[0][
'level']);
360 $vevent =
$vcal->add(
'VEVENT');
362 $dtstart = $vevent->add(
368 $this->assertEquals(
"DTSTART;VALUE=DATE:20140307\r\n", $dtstart->serialize());
testGetDateTimeDateFloatingReferenceTimeZone()
testGetDateTimeDateLOCALTZ()
testSetDateTimeFromUnixTimestamp()
testGetDateTimeDateNULL()
testUpdateValueParameter()
testCreateDatePropertyThroughAdd()
This issue was discovered on the sabredav mailing list.
testGetDateTimeDateFloating()
testGetDateTimeDateInvalid()
testGetDateTimeDateDATEReferenceTimeZone()
count()
Returns the number of elements.
testGetDateTimeDateDATE()
testGetDateTimeBadTimeZone()