diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2006-12-11 21:04:40 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2006-12-11 21:04:40 +0000 |
| commit | 2f291233e6458822143754867cd15092de2f984e (patch) | |
| tree | 2e3fd03b5f00f89de48a211b7333affd6a6d1943 /ext | |
| parent | 5218d956f03e37676607540109df8c3007c8ef36 (diff) | |
| download | php-git-2f291233e6458822143754867cd15092de2f984e.tar.gz | |
Fixed bug #39782 (setTime() on a DateTime constructed with a Weekday
yields incorrect results).
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/date/php_date.c | 2 | ||||
| -rw-r--r-- | ext/date/tests/bug39782.phpt | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/ext/date/php_date.c b/ext/date/php_date.c index c5502daf2e..07dc3ecf6c 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -1643,6 +1643,8 @@ static void date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int timelib_fill_holes(dateobj->time, now, 0); timelib_update_ts(dateobj->time, tzi); + dateobj->time->have_weekday_relative = dateobj->time->have_relative = 0; + if (now->tz_info != tzi) { timelib_tzinfo_dtor(now->tz_info); } diff --git a/ext/date/tests/bug39782.phpt b/ext/date/tests/bug39782.phpt new file mode 100644 index 0000000000..99abdd7bc8 --- /dev/null +++ b/ext/date/tests/bug39782.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #39782 (setTime() on a DateTime constructed with a Weekday yields incorrect results) +--FILE-- +<?php +date_default_timezone_set("GMT"); + +$dttTest = new DateTime('Dec 10 2006 Next Wednesday'); +echo $dttTest->format('D M j Y - H:i:s') . "\n"; + +$dttTest->setTime(12, 0, 0); +echo $dttTest->format('D M j Y - H:i:s') . "\n"; + +$dttTest->setTime(12, 0, 0); +echo $dttTest->format('D M j Y - H:i:s') . "\n"; +?> +--EXPECT-- +Wed Dec 13 2006 - 00:00:00 +Wed Dec 13 2006 - 12:00:00 +Wed Dec 13 2006 - 12:00:00
\ No newline at end of file |
