mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
- Fixed bug #50555 (DateTime::sub() allows 'relative' time modifications).
This commit is contained in:
parent
a2ad4ea8b5
commit
f1286280d1
2
NEWS
2
NEWS
@ -27,6 +27,8 @@ PHP NEWS
|
||||
- Fixed bug #50383 (Exceptions thrown in __call / __callStatic do not include
|
||||
file and line in trace). (Felipe)
|
||||
- Fixed bug #50358 (Compile failure compiling ext/phar/util.lo). (Felipe)
|
||||
- Fixed bug #50555 (DateTime::sub() allows 'relative' time modifications). (Derick)
|
||||
|
||||
|
||||
?? ??? 20??, PHP 5.3.2
|
||||
- Upgraded bundled sqlite to version 3.6.22. (Ilia)
|
||||
|
@ -2851,6 +2851,11 @@ PHP_FUNCTION(date_sub)
|
||||
intobj = (php_interval_obj *) zend_object_store_get_object(interval TSRMLS_CC);
|
||||
DATE_CHECK_INITIALIZED(intobj->initialized, DateInterval);
|
||||
|
||||
if (intobj->diff->have_special_relative) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Only non-special relative time specifications are supported for subtraction");
|
||||
return;
|
||||
}
|
||||
|
||||
if (intobj->diff->invert) {
|
||||
bias = -1;
|
||||
}
|
||||
|
30
ext/date/tests/bug50055.phpt
Normal file
30
ext/date/tests/bug50055.phpt
Normal file
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #50555 (DateTime::sub() allows 'relative' time modifications).
|
||||
--FILE--
|
||||
<?php
|
||||
$now = '2010-03-07 13:21:38 UTC';
|
||||
//positive DateInterval
|
||||
$da1 = date_create( $now );
|
||||
$ds1 = date_create( $now );
|
||||
$i = DateInterval::createFromDateString('third Tuesday of next month');
|
||||
echo $da1->format( DateTime::ISO8601 ), "\n";
|
||||
echo date_add($da1, $i)->format( DateTime::ISO8601 ), "\n";
|
||||
date_sub($ds1, $i);
|
||||
|
||||
//negative DateInterval
|
||||
$da2 = date_create( $now );
|
||||
$ds2 = date_create( $now );
|
||||
$i2 = DateInterval::createFromDateString('third Tuesday of last month');
|
||||
echo $da2->format( DateTime::ISO8601 ), "\n";
|
||||
echo date_add($da2, $i2)->format( DateTime::ISO8601 ), "\n";//works
|
||||
date_sub($ds2, $i);
|
||||
?>
|
||||
--EXPECTF--
|
||||
2010-03-07T13:21:38+0000
|
||||
2010-04-20T13:21:38+0000
|
||||
|
||||
Warning: date_sub(): Only non-special relative time specifications are supported for subtraction in %sbug50055.php on line 9
|
||||
2010-03-07T13:21:38+0000
|
||||
2010-02-16T13:21:38+0000
|
||||
|
||||
Warning: date_sub(): Only non-special relative time specifications are supported for subtraction in %sbug50055.php on line 17
|
Loading…
Reference in New Issue
Block a user