@@ -5,6 +5,9 @@ date.timezone=Europe/London
5
5
--FILE--
6
6
<?php
7
7
8
+ class MyDateTime extends DateTime {};
9
+ class MyDateTimeImmutable extends DateTimeImmutable {};
10
+
8
11
define ('MAX_32BIT ' , 2147483647 );
9
12
define ('MIN_32BIT ' , -2147483648 );
10
13
@@ -29,16 +32,46 @@ $timestamps = array(
29
32
30
33
foreach ($ timestamps as $ ts ) {
31
34
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
+ }
33
40
34
41
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
+ }
36
47
37
48
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
+ }
39
54
40
55
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" ;
42
75
}
43
76
44
77
?>
@@ -395,23 +428,39 @@ DateTimeImmutable::createFromTimestamp(-2147483648): object(DateTimeImmutable)#%
395
428
["timezone"]=>
396
429
string(6) "+00:00"
397
430
}
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