improve buffer writer
[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(ion\unserialize(ion\serialize(clone new ion\Timestamp(ion\Timestamp\Precision::Sec, DateTime::RFC3339, "1971-02-03T04:05:06Z"))));
25 ?>
26 DONE
27 --EXPECTF--
28 TEST
29 caught empty
30 object(ion\Timestamp)#%d (5) {
31 ["precision"]=>
32 int(7)
33 ["format"]=>
34 string(7) "Y-m-d\T"
35 ["date"]=>
36 string(26) "2021-12-07 14:08:51.123456"
37 ["timezone_type"]=>
38 int(1)
39 ["timezone"]=>
40 string(6) "+00:00"
41 }
42 string(11) "2021-12-07T"
43 object(ion\Timestamp)#%d (5) {
44 ["precision"]=>
45 int(7)
46 ["format"]=>
47 string(7) "Y-m-d\T"
48 ["date"]=>
49 string(26) "2021-12-07 14:08:51.123456"
50 ["timezone_type"]=>
51 int(1)
52 ["timezone"]=>
53 string(6) "+00:00"
54 }
55 string(11) "2021-12-07T"
56 object(ion\Timestamp)#%d (5) {
57 ["precision"]=>
58 int(23)
59 ["format"]=>
60 string(10) "Y-m-d\TH:i"
61 ["date"]=>
62 string(26) "2020-10-01 00:00:00.000000"
63 ["timezone_type"]=>
64 int(3)
65 ["timezone"]=>
66 string(3) "CET"
67 }
68 string(16) "2020-10-01T00:00"
69 string(16) "2020-10-01T01:00"
70 object(ion\Timestamp)#%d (5) {
71 ["precision"]=>
72 int(7)
73 ["format"]=>
74 string(7) "Y-m-d\T"
75 ["date"]=>
76 string(26) "2000-10-01 00:00:00.000000"
77 ["timezone_type"]=>
78 int(3)
79 ["timezone"]=>
80 string(3) "CET"
81 }
82 string(11) "2000-10-01T"
83 object(ion\Timestamp)#%d (3) {
84 ["precision"]=>
85 int(55)
86 ["format"]=>
87 string(12) "Y-m-d\TH:i:s"
88 ["date"]=>
89 string(26) "1971-02-03 04:05:06.000000"
90 }
91 DONE