|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-02-02 19:48 UTC] robertosuursoo at yahoo dot com dot br
Description:
------------
The diff function is calculating the wrong number of days.
PHP 5.3.5-1ubuntu7.4 with Suhosin-Patch (cli) (built: Dec 13 2011 18:30:11)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
Test script:
---------------
<html><head><title>TEST</title></head><body>
<?php
$a = new DateTime('2012-10-19');
$b = new DateTime('2012-10-22');
$interval = $a->diff($b);
?>
<p>$interval->days:<?=$interval->days?></p>
<?php
$a = new DateTime('2012-10-20');
$b = new DateTime('2012-10-22');
$interval = $a->diff($b);
?>
<p>$interval->days:<?=$interval->days?></p>
<?php
$a = new DateTime('2012-10-21');
$b = new DateTime('2012-10-22');
$interval = $a->diff($b);
?>
<p>$interval->days:<?=$interval->days?></p>
</body></html>
Expected result:
----------------
$interval->days:3
$interval->days:2
$interval->days:1
Actual result:
--------------
$interval->days:3
$interval->days:2
$interval->days:0
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Dec 06 12:00:01 2025 UTC |
I couldnt reproduce the problem, I get a result of 1 on: $a = new DateTime('2012-10-21'); $b = new DateTime('2012-10-22'); $interval = $a->diff($b); Tested Ubuntu 11 64 bits alsoObviously some wretched daylight savings issue. Call: date_default_timezone_set('UTC'); It's the only way to make any programming language's date handling sane.The function call worked perfectly and solved the problem! date_default_timezone_set('UTC'); Thank you very much!