From: Stanislav Malyshev Date: Sun, 30 Jan 2011 10:18:12 +0000 (+0000) Subject: Fix bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from... X-Git-Tag: php-5.3.6RC1~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=71f3d3793de0a52ec55579bec75634bb8407f32b;p=php Fix bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from timestamp) --- diff --git a/NEWS b/NEWS index b794b267a8..7a52ee4e75 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,8 @@ . Fixed bug #52808 (Segfault when specifying interval as two dates). (Stas) . Fixed bug #52738 (Can't use new properties in class extended from DateInterval). (Stas) + . Fixed bug #52290 (setDate, setISODate, setTime works wrong when DateTime + created from timestamp). (Stas) . Fixed bug #52063 (DateTime constructor's second argument doesn't have a null default value). (Gustavo, Stas) diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 7fde443a71..73a61c7e94 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -3090,6 +3090,7 @@ PHP_FUNCTION(date_isodate_set) dateobj->time->y = y; dateobj->time->m = 1; dateobj->time->d = 1; + memset(&dateobj->time->relative, 0, sizeof(dateobj->time->relative)); dateobj->time->relative.d = timelib_daynr_from_weeknr(y, w, d); dateobj->time->have_relative = 1; diff --git a/ext/date/tests/bug52290.phpt b/ext/date/tests/bug52290.phpt index c1ee9d47af..78ede1387c 100644 --- a/ext/date/tests/bug52290.phpt +++ b/ext/date/tests/bug52290.phpt @@ -23,5 +23,5 @@ var_dump($dt->format('o-\WW-N | Y-m-d | H:i:s | U')); --EXPECTF-- string(47) "2005-W52-7 | 2006-01-01 | 00:00:00 | 1136073600" string(47) "2005-W52-1 | 2005-12-26 | 00:00:00 | 1135555200" -string(47) "2007-W40-5 | 2007-10-10 | 00:00:00 | 1191974400" -string(47) "2007-W40-5 | 2007-10-10 | 20:30:40 | 1192048240" \ No newline at end of file +string(47) "2007-W41-3 | 2007-10-10 | 00:00:00 | 1191974400" +string(47) "2007-W41-3 | 2007-10-10 | 20:30:40 | 1192048240" \ No newline at end of file