ID:               50475
 Comment by:       yoarvi at gmail dot com
 Reported By:      nandobrt at gmail dot com
 Status:           Open
 Bug Type:         Date/time related
 Operating System: Windows XP
 PHP Version:      5.3SVN-2009-12-15 (snap)
 New Comment:

date_isodate_set should reset the have_relative flag once it has
updated the date/time value.

The following patch (5.3 svn tree) includes a fix and a test case for
this bug:

Index: ext/date/php_date.c
===================================================================
--- ext/date/php_date.c (revision 293574)
+++ ext/date/php_date.c (working copy)
@@ -3033,6 +3033,8 @@
        
        timelib_update_ts(dateobj->time, NULL);
 
+       dateobj->time->have_relative = 0;
+
        RETURN_ZVAL(object, 1, 0);
 }
 /* }}} */
Index: ext/date/tests/bug50475.phpt
===================================================================
--- ext/date/tests/bug50475.phpt        (revision 0)
+++ ext/date/tests/bug50475.phpt        (revision 0)
@@ -0,0 +1,16 @@
+--TEST--
+Bug #50475 (DateTime::setISODate followed by DateTime::setTime)
+--FILE--
+<?php
+date_default_timezone_set('Asia/Calcutta');
+
+$date = new DateTime('18-01-2009 00:00:00');
+$date->setISODate(2009, 6, 1);
+echo $date->format('Y-m-d H:i:s') . "\n";
+$date->setTime(8, 0);
+echo $date->format('Y-m-d H:i:s') . "\n";
+?>
+--EXPECT--
+2009-02-02 00:00:00
+2009-02-02 08:00:00
+


Previous Comments:
------------------------------------------------------------------------

[2009-12-15 03:23:53] nandobrt at gmail dot com

Description:
------------
Calling setTime on a DateTime object after having called setISODate
will change its date.

Reproduce code:
---------------
$date = new DateTime();
$date->setISODate(2009, 6);
echo $date->format('Y-m-d H:i:s') . "<br />";
$date->setTime(8, 0);
echo $date->format('Y-m-d H:i:s');

Expected result:
----------------
2009-02-02 01:11:15
2009-02-02 08:00:00

Actual result:
--------------
2009-02-02 01:11:15
2009-03-06 08:00:00


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=50475&edit=1

Reply via email to