@@ -5,6 +5,9 @@ date.timezone=Europe/London
55--FILE--
66<?php
77
8+ class MyDateTime extends DateTime {};
9+ class MyDateTimeImmutable extends DateTimeImmutable {};
10+
811define ('MAX_32BIT ' , 2147483647 );
912define ('MIN_32BIT ' , -2147483648 );
1013
@@ -29,16 +32,46 @@ $timestamps = array(
2932
3033foreach ($ timestamps as $ ts ) {
3134 echo 'date_create_from_timestamp( ' . var_export ($ ts , true ) . '): ' ;
32- var_dump (date_create_from_timestamp ($ ts ));
35+ try {
36+ var_dump (date_create_from_timestamp ($ ts ));
37+ } catch (Throwable $ e ) {
38+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
39+ }
3340
3441 echo 'DateTime::createFromTimestamp( ' . var_export ($ ts , true ) . '): ' ;
35- var_dump (DateTime::createFromTimestamp ($ ts ));
42+ try {
43+ var_dump (DateTime::createFromTimestamp ($ ts ));
44+ } catch (Throwable $ e ) {
45+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
46+ }
3647
3748 echo 'date_create_immutable_from_timestamp( ' . var_export ($ ts , true ) . '): ' ;
38- var_dump (date_create_immutable_from_timestamp ($ ts ));
49+ try {
50+ var_dump (date_create_immutable_from_timestamp ($ ts ));
51+ } catch (Throwable $ e ) {
52+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
53+ }
3954
4055 echo 'DateTimeImmutable::createFromTimestamp( ' . var_export ($ ts , true ) . '): ' ;
41- var_dump (DateTimeImmutable::createFromTimestamp ($ ts ));
56+ try {
57+ var_dump (DateTimeImmutable::createFromTimestamp ($ ts ));
58+ } catch (Throwable $ e ) {
59+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
60+ }
61+ }
62+
63+ echo 'MyDateTime::createFromTimestamp( ' . var_export (0 , true ) . '): ' ;
64+ try {
65+ var_dump (MyDateTime::createFromTimestamp (0 ));
66+ } catch (Throwable $ e ) {
67+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
68+ }
69+
70+ echo 'MyDateTimeImmutable::createFromTimestamp( ' . var_export (0 , true ) . '): ' ;
71+ try {
72+ var_dump (MyDateTimeImmutable::createFromTimestamp (0 ));
73+ } catch (Throwable $ e ) {
74+ echo get_class ($ e ) . ': ' . $ e ->getMessage () . "\n" ;
4275}
4376
4477?>
@@ -395,23 +428,39 @@ DateTimeImmutable::createFromTimestamp(-2147483648): object(DateTimeImmutable)#%
395428 ["timezone"]=>
396429 string(6) "+00:00"
397430}
398- date_create_from_timestamp(9.223372036854776E+18): bool(false)
399- DateTime::createFromTimestamp(9.223372036854776E+18): bool(false)
400- date_create_immutable_from_timestamp(9.223372036854776E+18): bool(false)
401- DateTimeImmutable::createFromTimestamp(9.223372036854776E+18): bool(false)
402- date_create_from_timestamp(-9.223372036854778E+18): bool(false)
403- DateTime::createFromTimestamp(-9.223372036854778E+18): bool(false)
404- date_create_immutable_from_timestamp(-9.223372036854778E+18): bool(false)
405- DateTimeImmutable::createFromTimestamp(-9.223372036854778E+18): bool(false)
406- date_create_from_timestamp(NAN): bool(false)
407- DateTime::createFromTimestamp(NAN): bool(false)
408- date_create_immutable_from_timestamp(NAN): bool(false)
409- DateTimeImmutable::createFromTimestamp(NAN): bool(false)
410- date_create_from_timestamp(INF): bool(false)
411- DateTime::createFromTimestamp(INF): bool(false)
412- date_create_immutable_from_timestamp(INF): bool(false)
413- DateTimeImmutable::createFromTimestamp(INF): bool(false)
414- date_create_from_timestamp(-INF): bool(false)
415- DateTime::createFromTimestamp(-INF): bool(false)
416- date_create_immutable_from_timestamp(-INF): bool(false)
417- DateTimeImmutable::createFromTimestamp(-INF): bool(false)
431+ date_create_from_timestamp(9.223372036854776E+18): DateRangeError: Seconds must be a finite number between %i and %i, 9.22337e+18 given
432+ DateTime::createFromTimestamp(9.223372036854776E+18): DateRangeError: Seconds must be a finite number between %i and %i, 9.22337e+18 given
433+ date_create_immutable_from_timestamp(9.223372036854776E+18): DateRangeError: Seconds must be a finite number between %i and %i, 9.22337e+18 given
434+ DateTimeImmutable::createFromTimestamp(9.223372036854776E+18): DateRangeError: Seconds must be a finite number between %i and %i, 9.22337e+18 given
435+ date_create_from_timestamp(-9.223372036854778E+18): DateRangeError: Seconds must be a finite number between %i and %i, -9.22337e+18 given
436+ DateTime::createFromTimestamp(-9.223372036854778E+18): DateRangeError: Seconds must be a finite number between %i and %i, -9.22337e+18 given
437+ date_create_immutable_from_timestamp(-9.223372036854778E+18): DateRangeError: Seconds must be a finite number between %i and %i, -9.22337e+18 given
438+ DateTimeImmutable::createFromTimestamp(-9.223372036854778E+18): DateRangeError: Seconds must be a finite number between %i and %i, -9.22337e+18 given
439+ date_create_from_timestamp(NAN): DateRangeError: Seconds must be a finite number between %i and %i, NAN given
440+ DateTime::createFromTimestamp(NAN): DateRangeError: Seconds must be a finite number between %i and %i, NAN given
441+ date_create_immutable_from_timestamp(NAN): DateRangeError: Seconds must be a finite number between %i and %i, NAN given
442+ DateTimeImmutable::createFromTimestamp(NAN): DateRangeError: Seconds must be a finite number between %i and %i, NAN given
443+ date_create_from_timestamp(INF): DateRangeError: Seconds must be a finite number between %i and %i, INF given
444+ DateTime::createFromTimestamp(INF): DateRangeError: Seconds must be a finite number between %i and %i, INF given
445+ date_create_immutable_from_timestamp(INF): DateRangeError: Seconds must be a finite number between %i and %i, INF given
446+ DateTimeImmutable::createFromTimestamp(INF): DateRangeError: Seconds must be a finite number between %i and %i, INF given
447+ date_create_from_timestamp(-INF): DateRangeError: Seconds must be a finite number between %i and %i, -INF given
448+ DateTime::createFromTimestamp(-INF): DateRangeError: Seconds must be a finite number between %i and %i, -INF given
449+ date_create_immutable_from_timestamp(-INF): DateRangeError: Seconds must be a finite number between %i and %i, -INF given
450+ DateTimeImmutable::createFromTimestamp(-INF): DateRangeError: Seconds must be a finite number between %i and %i, -INF given
451+ MyDateTime::createFromTimestamp(0): object(MyDateTime)#%d (3) {
452+ ["date"]=>
453+ string(26) "1970-01-01 00:00:00.000000"
454+ ["timezone_type"]=>
455+ int(1)
456+ ["timezone"]=>
457+ string(6) "+00:00"
458+ }
459+ MyDateTimeImmutable::createFromTimestamp(0): object(MyDateTimeImmutable)#%d (3) {
460+ ["date"]=>
461+ string(26) "1970-01-01 00:00:00.000000"
462+ ["timezone_type"]=>
463+ int(1)
464+ ["timezone"]=>
465+ string(6) "+00:00"
466+ }
0 commit comments