Bug #77001 [Dup]: Bug in date_add

From: Date: Thu, 11 Oct 2018 16:00:08 +0000
Subject: Bug #77001 [Dup]: Bug in date_add
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-217523@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77001&edit=1 ID: 77001 Updated by: derick@php.net Reported by: binhorbsoft at gmail dot com Summary: Bug in date_add Status: Duplicate Type: Bug Package: Date/time related Operating System: Linux PHP Version: 7.2.10 Assigned To: cmb Block user comment: N Private report: N New Comment: This is fixed for PHP 7.3.0RC4, by upgrading timelib (See: #75577) Previous Comments: ------------------------------------------------------------------------ [2018-10-11 14:18:44] cmb@php.net This looks like a duplicate of bug #75642. ------------------------------------------------------------------------ [2018-10-11 13:58:45] binhorbsoft at gmail dot com Description: ------------ --- From manual page: http://www.php.net/datetime.add --- If the sum has fraction of a second, the method fails if the result of the fraction is exactly one second. In other cases, it works well. Test script: --------------- <?php $objDataHora = date_create("2017-12-31T23:59:59.200"); $objIntervalo = new DateInterval("PT0S"); $objIntervalo->f = 0.700; $objDataHora = date_add($objDataHora, $objIntervalo); $strDataHora = date_format($objDataHora, "Y-m-d\TH:i:s.v"); echo("<p>$strDataHora</p>\n"); // 2017-12-31T23:59:59.900 - it's OK, the sum is correct $objDataHora = date_create("2017-12-31T23:59:59.400"); $objIntervalo = new DateInterval("PT0S"); $objIntervalo->f = 0.700; $objDataHora = date_add($objDataHora, $objIntervalo); $strDataHora = date_format($objDataHora, "Y-m-d\TH:i:s.v"); echo("<p>$strDataHora</p>\n"); // 2018-01-01T00:00:00.100 - it's OK, the sum is correct $objDataHora = date_create("2017-12-31T23:59:59.300"); $objIntervalo = new DateInterval("PT0S"); $objIntervalo->f = 0.700; $objDataHora = date_add($objDataHora, $objIntervalo); $strDataHora = date_format($objDataHora, "Y-m-d\TH:i:s.v"); echo("<p>$strDataHora</p>\n"); // 2017-12-31T23:59:59.1000 - it isn't OK, the sum is incorrect! ?> Expected result: ---------------- In third echo: 2018-01-01T00:00:00.000 Actual result: -------------- In third echo: 2017-12-31T23:59:59.1000 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=77001&edit=1

« previous php.bugs (#217523) next »