@@ -30,27 +30,19 @@ function set_timer(int $timeout, callable():void $callback) ::: void;
3030
3131function checkdate ($month ::: int, $day ::: int, $year ::: int) ::: bool;
3232
33- // ===== UNSUPPORTED =====
34-
35- /** @kphp-generate-stub-class */
3633class DateInterval {
37- /** @kphp-extern-func-info can_throw stub generation-required */
34+ /** @kphp-extern-func-info can_throw */
3835 public function __construct(string $duration);
39- /** @kphp-extern-func-info stub generation-required */
4036 public static function createFromDateString(string $datetime): ?DateInterval;
41- /** @kphp-extern-func-info stub generation-required */
4237 public function format(string $format): string;
4338}
4439
45- /** @kphp-generate-stub-class */
4640class DateTimeZone {
47- /** @kphp-extern-func-info can_throw stub generation-required */
41+ /** @kphp-extern-func-info can_throw */
4842 public function __construct(string $timezone);
49- /** @kphp-extern-func-info stub generation-required */
5043 public function getName(): string;
5144}
5245
53- /** @kphp-generate-stub-class */
5446interface DateTimeInterface {
5547 /* Constants */
5648 const ATOM = "Y-m-d\TH:i:sP";
@@ -86,84 +78,56 @@ interface DateTimeInterface {
8678 public function getTimestamp(): int;
8779}
8880
89- /** @kphp-generate-stub-class */
90- class DateTime implements DateTimeInterface {
91- /** @kphp-extern-func-info can_throw stub generation-required */
81+ class DateTimeImmutable implements DateTimeInterface {
82+ /** @kphp-extern-func-info can_throw */
9283 public function __construct(string $datetime = "now", ?DateTimeZone $timezone = null);
93- /** @kphp-extern-func-info stub generation-required */
94- public function add(DateInterval $interval): DateTime;
95- /** @kphp-extern-func-info stub generation-required */
96- public static function createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): ?DateTime;
97- /** @kphp-extern-func-info stub generation-required */
98- public static function createFromImmutable(DateTimeImmutable $object): DateTime;
99- /** @kphp-extern-func-info stub generation-required */
84+ public function add(DateInterval $interval): DateTimeImmutable;
85+ public static function createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): ?DateTimeImmutable;
86+ public static function createFromMutable(DateTime $object): DateTimeImmutable;
10087 public static function getLastErrors(): array|false;
101- /** @kphp-extern-func-info stub generation-required */
102- public function modify(string $modifier): ?DateTime;
103- /** @kphp-extern-func-info stub generation-required */
104- public function setDate(int $year, int $month, int $day): DateTime;
105- /** @kphp-extern-func-info stub generation-required */
106- public function setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime;
107- /** @kphp-extern-func-info stub generation-required */
88+ public function modify(string $modifier): ?DateTimeImmutable;
89+ public function setDate(int $year, int $month, int $day): DateTimeImmutable;
90+ public function setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable;
10891 public function setTime(
10992 int $hour,
11093 int $minute,
11194 int $second = 0,
11295 int $microsecond = 0
113- ): DateTime;
114- /** @kphp-extern-func-info stub generation-required */
115- public function setTimestamp(int $timestamp): DateTime;
116- /** @kphp-extern-func-info stub generation-required */
117- public function sub(DateInterval $interval): DateTime;
118- /** @kphp-extern-func-info stub generation-required */
96+ ): DateTimeImmutable;
97+ public function setTimestamp(int $timestamp): DateTimeImmutable;
98+ public function sub(DateInterval $interval): DateTimeImmutable;
11999 public function diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval;
120- /** @kphp-extern-func-info stub generation-required */
121100 public function format(string $format): string;
122- /** @kphp-extern-func-info stub generation-required */
123101 public function getOffset(): int;
124- /** @kphp-extern-func-info stub generation-required */
125102 public function getTimestamp(): int;
126103}
127104
128- /** @kphp-generate-stub-class */
129- class DateTimeImmutable implements DateTimeInterface {
130- /** @kphp-extern-func-info can_throw stub generation-required */
105+ class DateTime implements DateTimeInterface {
106+ /** @kphp-extern-func-info can_throw */
131107 public function __construct(string $datetime = "now", ?DateTimeZone $timezone = null);
132- /** @kphp-extern-func-info stub generation-required */
133- public function add(DateInterval $interval): DateTimeImmutable;
134- /** @kphp-extern-func-info stub generation-required */
135- public static function createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): ?DateTimeImmutable;
136- /** @kphp-extern-func-info stub generation-required */
137- public static function createFromMutable(DateTime $object): DateTimeImmutable;
138- /** @kphp-extern-func-info stub generation-required */
108+ public function add(DateInterval $interval): DateTime;
109+ public static function createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): ?DateTime;
110+ public static function createFromImmutable(DateTimeImmutable $object): DateTime;
139111 public static function getLastErrors(): array|false;
140- /** @kphp-extern-func-info stub generation-required */
141- public function modify(string $modifier): ?DateTimeImmutable;
142- /** @kphp-extern-func-info stub generation-required */
143- public function setDate(int $year, int $month, int $day): DateTimeImmutable;
144- /** @kphp-extern-func-info stub generation-required */
145- public function setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable;
146- /** @kphp-extern-func-info stub generation-required */
112+ public function modify(string $modifier): ?DateTime;
113+ public function setDate(int $year, int $month, int $day): DateTime;
114+ public function setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime;
147115 public function setTime(
148116 int $hour,
149117 int $minute,
150118 int $second = 0,
151119 int $microsecond = 0
152- ): DateTimeImmutable;
153- /** @kphp-extern-func-info stub generation-required */
154- public function setTimestamp(int $timestamp): DateTimeImmutable;
155- /** @kphp-extern-func-info stub generation-required */
156- public function sub(DateInterval $interval): DateTimeImmutable;
157- /** @kphp-extern-func-info stub generation-required */
120+ ): DateTime;
121+ public function setTimestamp(int $timestamp): DateTime;
122+ public function sub(DateInterval $interval): DateTime;
158123 public function diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval;
159- /** @kphp-extern-func-info stub generation-required */
160124 public function format(string $format): string;
161- /** @kphp-extern-func-info stub generation-required */
162125 public function getOffset(): int;
163- /** @kphp-extern-func-info stub generation-required */
164126 public function getTimestamp(): int;
165127}
166128
129+ // ===== UNSUPPORTED =====
130+
167131define('DATE_ATOM', "Y-m-d\TH:i:sP");
168132define('DATE_COOKIE', "l, d-M-y H:i:s T");
169133define('DATE_ISO8601', "Y-m-d\TH:i:sO");
0 commit comments