php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #49659 Error date add
Submitted: 2009-09-24 13:58 UTC Modified: 2009-09-24 19:13 UTC
From: xvilamanya at gmail dot com Assigned:
Status: Not a bug Package: Date/time related
PHP Version: 5.2.9 OS: *
Private report: No CVE-ID: None
 [2009-09-24 13:58 UTC] xvilamanya at gmail dot com
Description:
------------
When I execute the next code, from 18th till 25th of October'2009, the result is incorrect. I can't test under 5.2.11 version. My hosts providers want a bug php ticket to do it.

the execute php is at:
http://campusismet.es/dates2.php
http://ismet.es/dates2.php
http://vilamanya.com/dates2.php

php_info at:
http://campusismet.es/phpinfo.php
http://ismet.es/phpinfo.php
http://vilamanya.com/phpinfo.php

Where is the error?

Thanks in advance!

 

Reproduce code:
---------------
for ($i=1;$i<32;$i++)
   {
    $data_ant = '2009-10-'.strval($i);
    $dies = 7;
    list($ano,$mes,$dia) = split("-",$data_ant);
    $data_inici = date("Y-m-d", mktime(0,0,0, $mes,$dia,$ano) + $dies * 24 * 60 * 60);
    echo "Start Date: ".$data_ant." + 7 days = ".$data_inici."<br>";
   }


Expected result:
----------------
Start Date: 2009-10-1 + 7 days = 2009-10-08
Start Date: 2009-10-2 + 7 days = 2009-10-09
Start Date: 2009-10-3 + 7 days = 2009-10-10
Start Date: 2009-10-4 + 7 days = 2009-10-11
Start Date: 2009-10-5 + 7 days = 2009-10-12
Start Date: 2009-10-6 + 7 days = 2009-10-13
Start Date: 2009-10-7 + 7 days = 2009-10-14
Start Date: 2009-10-8 + 7 days = 2009-10-15
Start Date: 2009-10-9 + 7 days = 2009-10-16
Start Date: 2009-10-10 + 7 days = 2009-10-17
Start Date: 2009-10-11 + 7 days = 2009-10-18
Start Date: 2009-10-12 + 7 days = 2009-10-19
Start Date: 2009-10-13 + 7 days = 2009-10-20
Start Date: 2009-10-14 + 7 days = 2009-10-21
Start Date: 2009-10-15 + 7 days = 2009-10-22
Start Date: 2009-10-16 + 7 days = 2009-10-23
Start Date: 2009-10-17 + 7 days = 2009-10-24
Start Date: 2009-10-18 + 7 days = 2009-10-25
Start Date: 2009-10-19 + 7 days = 2009-10-26
Start Date: 2009-10-20 + 7 days = 2009-10-27
Start Date: 2009-10-21 + 7 days = 2009-10-28
Start Date: 2009-10-22 + 7 days = 2009-10-29
Start Date: 2009-10-23 + 7 days = 2009-10-30
Start Date: 2009-10-24 + 7 days = 2009-10-31
Start Date: 2009-10-25 + 7 days = 2009-10-01
Start Date: 2009-10-26 + 7 days = 2009-11-02
Start Date: 2009-10-27 + 7 days = 2009-11-03
Start Date: 2009-10-28 + 7 days = 2009-11-04
Start Date: 2009-10-29 + 7 days = 2009-11-05
Start Date: 2009-10-30 + 7 days = 2009-11-06
Start Date: 2009-10-31 + 7 days = 2009-11-07

Actual result:
--------------
Start Date: 2009-10-1 + 7 days = 2009-10-08
Start Date: 2009-10-2 + 7 days = 2009-10-09
Start Date: 2009-10-3 + 7 days = 2009-10-10
Start Date: 2009-10-4 + 7 days = 2009-10-11
Start Date: 2009-10-5 + 7 days = 2009-10-12
Start Date: 2009-10-6 + 7 days = 2009-10-13
Start Date: 2009-10-7 + 7 days = 2009-10-14
Start Date: 2009-10-8 + 7 days = 2009-10-15
Start Date: 2009-10-9 + 7 days = 2009-10-16
Start Date: 2009-10-10 + 7 days = 2009-10-17
Start Date: 2009-10-11 + 7 days = 2009-10-18
Start Date: 2009-10-12 + 7 days = 2009-10-19
Start Date: 2009-10-13 + 7 days = 2009-10-20
Start Date: 2009-10-14 + 7 days = 2009-10-21
Start Date: 2009-10-15 + 7 days = 2009-10-22
Start Date: 2009-10-16 + 7 days = 2009-10-23
Start Date: 2009-10-17 + 7 days = 2009-10-24
Start Date: 2009-10-18 + 7 days = 2009-10-25
Start Date: 2009-10-19 + 7 days = 2009-10-25
Start Date: 2009-10-20 + 7 days = 2009-10-26
Start Date: 2009-10-21 + 7 days = 2009-10-27
Start Date: 2009-10-22 + 7 days = 2009-10-28
Start Date: 2009-10-23 + 7 days = 2009-10-29
Start Date: 2009-10-24 + 7 days = 2009-10-30
Start Date: 2009-10-25 + 7 days = 2009-10-31
Start Date: 2009-10-26 + 7 days = 2009-11-02
Start Date: 2009-10-27 + 7 days = 2009-11-03
Start Date: 2009-10-28 + 7 days = 2009-11-04
Start Date: 2009-10-29 + 7 days = 2009-11-05
Start Date: 2009-10-30 + 7 days = 2009-11-06
Start Date: 2009-10-31 + 7 days = 2009-11-07

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-09-24 15:18 UTC] jani@php.net
We are happy to tell you that you just discovered Daylight Savings
Time. For more information see:
http://webexhibits.org/daylightsaving/b.html
Instead of using mktime/date consider using gmmktime and gmdate which do
not suffer from DST.


 [2009-09-24 19:13 UTC] xvilamanya at gmail dot com
Thanks,

but any version correct the DST error in mktime/date?

Thanks in advance!
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Jul 09 13:01:36 2025 UTC