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