#50020 [Fbk->Opn]: DateInterval:createDateFromString() silently fails
| From: | jennifer dot kimball at nrc dot ca | Date: | Fri, 30 Oct 2009 18:33:08 +0000 |
| Subject: | #50020 [Fbk->Opn]: DateInterval:createDateFromString() silently fails | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-144112@lists.php.net to get a copy of this message | ||
ID: 50020
User updated by: jennifer dot kimball at nrc dot ca
Reported By: jennifer dot kimball at nrc dot ca
-Status: Feedback
+Status: Open
Bug Type: Date/time related
Operating System: Solaris 10
PHP Version: 5.3.0
New Comment:
The snapshot fixes the memory problem for me. But there is still no way
to easily tell if a DateInterval size is zero or if there were errors
creating the DateInterval.
Previous Comments:
------------------------------------------------------------------------
[2009-10-27 22:31:45] jani@php.net
Please try using this snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
Works just fine for me.
------------------------------------------------------------------------
[2009-10-27 17:35:39] jennifer dot kimball at nrc dot ca
Description:
------------
Documentation of DateInterval:createDateFromString() does not state
what happens when the function fails. So far as I can tell, it seems to
produce an empty DateInterval object.
If an empty object is the expected behaviour then it should be
documented. And more importantly, there should be an easy way to test if
the object is empty.
Given that creating a DatePeriod using an empty DateInterval consumes
all the memory available to a session, it seems to me that allowing
empty DateIntervals is a design flaw.
Reproduce code:
---------------
---
From manual page: dateinterval.createfromdatestring#Return Values
---
$i=DateInterval::createFromDateString('P1D');//expected to fail
$d1=date_create('2009-10-27');
$d2=date_create('2009-11-15');
$p=new DatePeriod($d1,$i,$d2); //PHP times out
Expected result:
----------------
expect error at line $i=DateInterval::createFromDateString('P1D')
Actual result:
--------------
Fatal error: Allowed memory size of 314572800 bytes exhausted (tried to
allocate 72 bytes)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50020&edit=1