fix #6: compatibility with 8.2
[awesomized/ext-ion] / tests / Timestamp.phpt
1 --TEST--
2 ion\Timestamp
3 --EXTENSIONS--
4 ion
5 --INI--
6 date.timezone=CET
7 --FILE--
8 TEST
9 <?php
10 use ion\Timestamp;
11
12 try {
13 var_dump(new Timestamp);
14 } catch (Throwable) {
15 echo "caught empty\n";
16 }
17 $full = "2021-12-07T14:08:51.123456+00:00";
18 var_dump($t=new Timestamp(Timestamp\Precision::Day, datetime:$full),(string)$t);
19 var_dump($t=new Timestamp(Timestamp\Precision::Day->value, datetime:$full),(string)$t);
20 var_dump($t=new Timestamp(Timestamp\Precision::Min, datetime:"2020-10-01"),(string)$t);
21 $t->setTimezone(new DateTimeZone("Europe/Helsinki"));
22 var_dump((string) $t);
23 var_dump($t=new Timestamp(Timestamp\Precision::Day, "!Y-m", "2000-10"),(string)$t);
24 var_dump($t=new Timestamp(Timestamp\Precision::MinTZ, Timestamp\Format::MinTZ, "2000-10-20T11:11CET"),(string)$t);
25 var_dump(ion\unserialize(ion\serialize(clone new ion\Timestamp(ion\Timestamp\Precision::Sec, DateTime::RFC3339, "1971-02-03T04:05:06Z"))));
26 ?>
27 DONE
28 --EXPECTF--
29 TEST
30 caught empty
31 object(ion\Timestamp)#%d (5) {
32 ["precision"]=>
33 int(7)
34 ["format"]=>
35 string(7) "Y-m-d\T"
36 ["date"]=>
37 string(26) "2021-12-07 14:08:51.123456"
38 ["timezone_type"]=>
39 int(1)
40 ["timezone"]=>
41 string(6) "+00:00"
42 }
43 string(11) "2021-12-07T"
44 object(ion\Timestamp)#%d (5) {
45 ["precision"]=>
46 int(7)
47 ["format"]=>
48 string(7) "Y-m-d\T"
49 ["date"]=>
50 string(26) "2021-12-07 14:08:51.123456"
51 ["timezone_type"]=>
52 int(1)
53 ["timezone"]=>
54 string(6) "+00:00"
55 }
56 string(11) "2021-12-07T"
57 object(ion\Timestamp)#%d (5) {
58 ["precision"]=>
59 int(23)
60 ["format"]=>
61 string(10) "Y-m-d\TH:i"
62 ["date"]=>
63 string(26) "2020-10-01 00:00:00.000000"
64 ["timezone_type"]=>
65 int(3)
66 ["timezone"]=>
67 string(3) "CET"
68 }
69 string(16) "2020-10-01T00:00"
70 string(16) "2020-10-01T01:00"
71 object(ion\Timestamp)#%d (5) {
72 ["precision"]=>
73 int(7)
74 ["format"]=>
75 string(7) "Y-m-d\T"
76 ["date"]=>
77 string(26) "2000-10-01 00:00:00.000000"
78 ["timezone_type"]=>
79 int(3)
80 ["timezone"]=>
81 string(3) "CET"
82 }
83 string(11) "2000-10-01T"
84 object(ion\Timestamp)#%d (5) {
85 ["precision"]=>
86 int(151)
87 ["format"]=>
88 string(11) "Y-m-d\TH:iP"
89 ["date"]=>
90 string(26) "2000-10-20 11:11:00.000000"
91 ["timezone_type"]=>
92 int(2)
93 ["timezone"]=>
94 string(3) "CET"
95 }
96 string(22) "2000-10-20T11:11+01:00"
97 object(ion\Timestamp)#%d (3) {
98 ["precision"]=>
99 int(55)
100 ["format"]=>
101 string(12) "Y-m-d\TH:i:s"
102 ["date"]=>
103 string(26) "1971-02-03 04:05:06.000000"
104 }
105 DONE