Bug #53340 [NEW]: getTimestamp returns wrong values for DateTimes from DatePeriods
| From: | simon dot kohlmeyer at mayflower dot de | Date: | Thu, 18 Nov 2010 09:47:59 +0000 |
| Subject: | Bug #53340 [NEW]: getTimestamp returns wrong values for DateTimes from DatePeriods | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-156148@lists.php.net to get a copy of this message | ||
From:
Operating system: Linux
PHP version: 5.3.3
Package: Date/time related
Bug Type: Bug
Bug description:getTimestamp returns wrong values for DateTimes from DatePeriods
Description:
------------
When using a DatePeriod, calling getTimestamp on the objects returns wrong
results, starting with the second Datetime.
This is probably connected with http://bugs.php.net/bug.php?id=52454 and
might have been fixed by it's solution.
I'm on gentoo 64bit testing using php-5.3.3. Also confirmed on debian 32bit
using php5.3.2-1.
Test script:
---------------
<?php
$start = new Datetime('2010-11-10 08:00:00 UTC');
$delta = new DateInterval('P1D');
$snd = new Datetime('2010-11-11 08:00:00 UTC');
$period = new DatePeriod($start, $delta, 3);
echo 'We should get: ' . $snd->getTimestamp() . "\n";
$manual = clone $start;
$manual->add($delta);
echo 'Manually adding: ' . $manual->getTimestamp() . "\n";
foreach ($period as $p) {
// work around getTimestamp modifying date
http://bugs.php.net/bug.php?id=52454
$timestamp = $p->getTimestamp();
echo 'From DatePeriod: ' . $timestamp . ', ';
$tmp = new Datetime('@' . $timestamp);
echo 'which is really: ' . $tmp->format('Y-m-d H:i:s') . ',
' .
$tmp->getTimezone()->getName() . "\n";
}
Expected result:
----------------
We should get: 1289462400
Manually adding: 1289462400
From DatePeriod: 1289376000, which is really: 2010-11-10 08:00:00, +00:00
From DatePeriod: 1289462400, which is really: 2010-11-11 08:00:00, +00:00
From DatePeriod: 1289548800, which is really: 2010-11-12 08:00:00, +00:00
From DatePeriod: 1289635200, which is really: 2010-11-13 08:00:00, +00:00
Actual result:
--------------
We should get: 1289462400
Manually adding: 1289462400
From DatePeriod: 1289376000, which is really: 2010-11-10 08:00:00, +00:00
From DatePeriod: 1289548800, which is really: 2010-11-12 08:00:00, +00:00
From DatePeriod: 1289635200, which is really: 2010-11-13 08:00:00, +00:00
From DatePeriod: 1289721600, which is really: 2010-11-14 08:00:00, +00:00
--
Edit bug report at http://bugs.php.net/bug.php?id=53340&edit=1
--
Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=53340&r=trysnapshot52
Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=53340&r=trysnapshot53
Try a snapshot (trunk): http://bugs.php.net/fix.php?id=53340&r=trysnapshottrunk
Fixed in SVN: http://bugs.php.net/fix.php?id=53340&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=53340&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=53340&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=53340&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=53340&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=53340&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=53340&r=support
Expected behavior: http://bugs.php.net/fix.php?id=53340&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=53340&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=53340&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=53340&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=53340&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=53340&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=53340&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=53340&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=53340&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=53340&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=53340&r=mysqlcfg