summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2006-12-11 21:04:40 +0000
committerIlia Alshanetsky <iliaa@php.net>2006-12-11 21:04:40 +0000
commit2f291233e6458822143754867cd15092de2f984e (patch)
tree2e3fd03b5f00f89de48a211b7333affd6a6d1943 /ext
parent5218d956f03e37676607540109df8c3007c8ef36 (diff)
downloadphp-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.c2
-rw-r--r--ext/date/tests/bug39782.phpt19
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