Adding weekdays to DateTime resets the time

From: Date: Mon, 04 May 2015 15:33:24 +0000
Subject: Adding weekdays to DateTime resets the time
Groups: php.internals 
Request: Send a blank email to internals+get-86108@lists.php.net to get a copy of this message
Hi, when I modify a DateTime object and add or subtract weekdays, it happens that the current time is reset to 00:00:00. This effect does not occur when I add days. I also experienced the same behavior with strototime. > <?php > > $a = new DateTime(strtotime('2015-05-04 17:22')); > var_dump((string) $a->format('Y-m-d H:i:s')); // 2015-05-04 17:22:00 > $a->modify('+1 day'); > var_dump((string) $a->format('Y-m-d H:i:s')); // 2015-05-05 17:22:00 > $a->modify('+1 weekday'); > var_dump((string) $a->format('Y-m-d H:i:s')); 2015-05-06 00:00:00 > > var_dump(date('Y-m-d H:i:s', strtotime('+1 weekday'))); // 2015-05-05 00:00:00 http://3v4l.org/554H4 There seems to be slighly different behavior between the different PHP versions. strotime always had this behavior. DateTime::modify() worked correct until PHP 5.3.5. I don't know if this behavior was changed on purpose (I didn't find something on it). If so, why? Otherwise I would suggest to fix this, as it is really confusing. Regards, Markus

« previous php.internals (#86108) next »