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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: xvilamanya at gmail dot com
New email:
PHP Version: OS:

 

 [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 23:01:33 2025 UTC