Datum bug in PHP?
Als ik de volgende code uitvoer in Zend voor bv 1-1-2012 krijg ik van 26 t/m 31 maart onverwachte resultaten. Hoe kan dat?
Code:
for($i = 1;$i <365;$i ++){
$this->_einddatum = clone $this->startdatum;
$this->_einddatum->addYear(1);
echo($this->startdatum->toString("yyyy-MM-d").' - '.$this->_einddatum->toString("yyyy-MM-d").' <br/>' );
$this->startdatum->addDay(1);
}
resultaat:
2012-01-1 - 2013-01-1
2012-01-2 - 2013-01-2
2012-01-3 - 2013-01-3
2012-01-4 - 2013-01-4
2012-01-5 - 2013-01-5
2012-01-6 - 2013-01-6
2012-01-7 - 2013-01-7
2012-01-8 - 2013-01-8
2012-01-9 - 2013-01-9
2012-01-10 - 2013-01-10
2012-01-11 - 2013-01-11
2012-01-12 - 2013-01-12
2012-01-13 - 2013-01-13
2012-01-14 - 2013-01-14
2012-01-15 - 2013-01-15
2012-01-16 - 2013-01-16
2012-01-17 - 2013-01-17
2012-01-18 - 2013-01-18
2012-01-19 - 2013-01-19
2012-01-20 - 2013-01-20
2012-01-21 - 2013-01-21
2012-01-22 - 2013-01-22
2012-01-23 - 2013-01-23
2012-01-24 - 2013-01-24
2012-01-25 - 2013-01-25
2012-01-26 - 2013-01-26
2012-01-27 - 2013-01-27
2012-01-28 - 2013-01-28
2012-01-29 - 2013-01-29
2012-01-30 - 2013-01-30
2012-01-31 - 2013-01-31
2012-02-1 - 2013-02-1
2012-02-2 - 2013-02-2
2012-02-3 - 2013-02-3
2012-02-4 - 2013-02-4
2012-02-5 - 2013-02-5
2012-02-6 - 2013-02-6
2012-02-7 - 2013-02-7
2012-02-8 - 2013-02-8
2012-02-9 - 2013-02-9
2012-02-10 - 2013-02-10
2012-02-11 - 2013-02-11
2012-02-12 - 2013-02-12
2012-02-13 - 2013-02-13
2012-02-14 - 2013-02-14
2012-02-15 - 2013-02-15
2012-02-16 - 2013-02-16
2012-02-17 - 2013-02-17
2012-02-18 - 2013-02-18
2012-02-19 - 2013-02-19
2012-02-20 - 2013-02-20
2012-02-21 - 2013-02-21
2012-02-22 - 2013-02-22
2012-02-23 - 2013-02-23
2012-02-24 - 2013-02-24
2012-02-25 - 2013-02-25
2012-02-26 - 2013-02-26
2012-02-27 - 2013-02-27
2012-02-28 - 2013-02-28
2012-02-29 - 2013-03-1
2012-03-1 - 2013-03-1
2012-03-2 - 2013-03-2
2012-03-3 - 2013-03-3
2012-03-4 - 2013-03-4
2012-03-5 - 2013-03-5
2012-03-6 - 2013-03-6
2012-03-7 - 2013-03-7
2012-03-8 - 2013-03-8
2012-03-9 - 2013-03-9
2012-03-10 - 2013-03-10
2012-03-11 - 2013-03-11
2012-03-12 - 2013-03-12
2012-03-13 - 2013-03-13
2012-03-14 - 2013-03-14
2012-03-15 - 2013-03-15
2012-03-16 - 2013-03-16
2012-03-17 - 2013-03-17
2012-03-18 - 2013-03-18
2012-03-19 - 2013-03-19
2012-03-20 - 2013-03-20
2012-03-21 - 2013-03-21
2012-03-22 - 2013-03-22
2012-03-23 - 2013-03-23
2012-03-24 - 2013-03-24
2012-03-25 - 2013-03-25
2012-03-26 - 2013-03-25
2012-03-27 - 2013-03-26
2012-03-28 - 2013-03-27
2012-03-29 - 2013-03-28
2012-03-30 - 2013-03-29
2012-03-31 - 2013-03-30
2012-04-1 - 2013-04-1
2012-04-2 - 2013-04-2
2012-04-3 - 2013-04-3
2012-04-4 - 2013-04-4
2012-04-5 - 2013-04-5
2012-04-6 - 2013-04-6
2012-04-7 - 2013-04-7
2012-04-8 - 2013-04-8
2012-04-9 - 2013-04-9
2012-04-10 - 2013-04-10
2012-04-11 - 2013-04-11
2012-04-12 - 2013-04-12
2012-04-13 - 2013-04-13
2012-04-14 - 2013-04-14
2012-04-15 - 2013-04-15
2012-04-16 - 2013-04-16
2012-04-17 - 2013-04-17
2012-04-18 - 2013-04-18
2012-04-19 - 2013-04-19
2012-04-20 - 2013-04-20
2012-04-21 - 2013-04-21
2012-04-22 - 2013-04-22
2012-04-23 - 2013-04-23
2012-04-24 - 2013-04-24
2012-04-25 - 2013-04-25
2012-04-26 - 2013-04-26
2012-04-27 - 2013-04-27
2012-04-28 - 2013-04-28
2012-04-29 - 2013-04-29
2012-04-30 - 2013-04-30
2012-05-1 - 2013-05-1
2012-05-2 - 2013-05-2
2012-05-3 - 2013-05-3
2012-05-4 - 2013-05-4
2012-05-5 - 2013-05-5
2012-05-6 - 2013-05-6
2012-05-7 - 2013-05-7
2012-05-8 - 2013-05-8
2012-05-9 - 2013-05-9
2012-05-10 - 2013-05-10
2012-05-11 - 2013-05-11
2012-05-12 - 2013-05-12
2012-05-13 - 2013-05-13
2012-05-14 - 2013-05-14
2012-05-15 - 2013-05-15
2012-05-16 - 2013-05-16
2012-05-17 - 2013-05-17
2012-05-18 - 2013-05-18
2012-05-19 - 2013-05-19
2012-05-20 - 2013-05-20
2012-05-21 - 2013-05-21
2012-05-22 - 2013-05-22
2012-05-23 - 2013-05-23
2012-05-24 - 2013-05-24
2012-05-25 - 2013-05-25
2012-05-26 - 2013-05-26
2012-05-27 - 2013-05-27
2012-05-28 - 2013-05-28
2012-05-29 - 2013-05-29
2012-05-30 - 2013-05-30
2012-05-31 - 2013-05-31
2012-06-1 - 2013-06-1
2012-06-2 - 2013-06-2
2012-06-3 - 2013-06-3
2012-06-4 - 2013-06-4
2012-06-5 - 2013-06-5
2012-06-6 - 2013-06-6
2012-06-7 - 2013-06-7
2012-06-8 - 2013-06-8
2012-06-9 - 2013-06-9
2012-06-10 - 2013-06-10
2012-06-11 - 2013-06-11
2012-06-12 - 2013-06-12
2012-06-13 - 2013-06-13
2012-06-14 - 2013-06-14
2012-06-15 - 2013-06-15
2012-06-16 - 2013-06-16
2012-06-17 - 2013-06-17
2012-06-18 - 2013-06-18
2012-06-19 - 2013-06-19
2012-06-20 - 2013-06-20
2012-06-21 - 2013-06-21
2012-06-22 - 2013-06-22
2012-06-23 - 2013-06-23
2012-06-24 - 2013-06-24
2012-06-25 - 2013-06-25
2012-06-26 - 2013-06-26
2012-06-27 - 2013-06-27
2012-06-28 - 2013-06-28
2012-06-29 - 2013-06-29
2012-06-30 - 2013-06-30
2012-07-1 - 2013-07-1
2012-07-2 - 2013-07-2
2012-07-3 - 2013-07-3
2012-07-4 - 2013-07-4
2012-07-5 - 2013-07-5
2012-07-6 - 2013-07-6
2012-07-7 - 2013-07-7
2012-07-8 - 2013-07-8
2012-07-9 - 2013-07-9
2012-07-10 - 2013-07-10
2012-07-11 - 2013-07-11
2012-07-12 - 2013-07-12
2012-07-13 - 2013-07-13
2012-07-14 - 2013-07-14
2012-07-15 - 2013-07-15
2012-07-16 - 2013-07-16
2012-07-17 - 2013-07-17
2012-07-18 - 2013-07-18
2012-07-19 - 2013-07-19
2012-07-20 - 2013-07-20
2012-07-21 - 2013-07-21
2012-07-22 - 2013-07-22
2012-07-23 - 2013-07-23
2012-07-24 - 2013-07-24
2012-07-25 - 2013-07-25
2012-07-26 - 2013-07-26
2012-07-27 - 2013-07-27
2012-07-28 - 2013-07-28
2012-07-29 - 2013-07-29
2012-07-30 - 2013-07-30
2012-07-31 - 2013-07-31
2012-08-1 - 2013-08-1
2012-08-2 - 2013-08-2
2012-08-3 - 2013-08-3
2012-08-4 - 2013-08-4
2012-08-5 - 2013-08-5
2012-08-6 - 2013-08-6
2012-08-7 - 2013-08-7
2012-08-8 - 2013-08-8
2012-08-9 - 2013-08-9
2012-08-10 - 2013-08-10
2012-08-11 - 2013-08-11
2012-08-12 - 2013-08-12
2012-08-13 - 2013-08-13
2012-08-14 - 2013-08-14
2012-08-15 - 2013-08-15
2012-08-16 - 2013-08-16
2012-08-17 - 2013-08-17
2012-08-18 - 2013-08-18
2012-08-19 - 2013-08-19
2012-08-20 - 2013-08-20
2012-08-21 - 2013-08-21
2012-08-22 - 2013-08-22
2012-08-23 - 2013-08-23
2012-08-24 - 2013-08-24
2012-08-25 - 2013-08-25
2012-08-26 - 2013-08-26
2012-08-27 - 2013-08-27
2012-08-28 - 2013-08-28
2012-08-29 - 2013-08-29
2012-08-30 - 2013-08-30
2012-08-31 - 2013-08-31
2012-09-1 - 2013-09-1
2012-09-2 - 2013-09-2
2012-09-3 - 2013-09-3
2012-09-4 - 2013-09-4
2012-09-5 - 2013-09-5
2012-09-6 - 2013-09-6
2012-09-7 - 2013-09-7
2012-09-8 - 2013-09-8
2012-09-9 - 2013-09-9
2012-09-10 - 2013-09-10
2012-09-11 - 2013-09-11
2012-09-12 - 2013-09-12
2012-09-13 - 2013-09-13
2012-09-14 - 2013-09-14
2012-09-15 - 2013-09-15
2012-09-16 - 2013-09-16
2012-09-17 - 2013-09-17
2012-09-18 - 2013-09-18
2012-09-19 - 2013-09-19
2012-09-20 - 2013-09-20
2012-09-21 - 2013-09-21
2012-09-22 - 2013-09-22
2012-09-23 - 2013-09-23
2012-09-24 - 2013-09-24
2012-09-25 - 2013-09-25
2012-09-26 - 2013-09-26
2012-09-27 - 2013-09-27
2012-09-28 - 2013-09-28
2012-09-29 - 2013-09-29
2012-09-30 - 2013-09-30
2012-10-1 - 2013-10-1
2012-10-2 - 2013-10-2
2012-10-3 - 2013-10-3
2012-10-4 - 2013-10-4
2012-10-5 - 2013-10-5
2012-10-6 - 2013-10-6
2012-10-7 - 2013-10-7
2012-10-8 - 2013-10-8
2012-10-9 - 2013-10-9
2012-10-10 - 2013-10-10
2012-10-11 - 2013-10-11
2012-10-12 - 2013-10-12
2012-10-13 - 2013-10-13
2012-10-14 - 2013-10-14
2012-10-15 - 2013-10-15
2012-10-16 - 2013-10-16
2012-10-17 - 2013-10-17
2012-10-18 - 2013-10-18
2012-10-19 - 2013-10-19
2012-10-20 - 2013-10-20
2012-10-21 - 2013-10-21
2012-10-22 - 2013-10-22
2012-10-23 - 2013-10-23
2012-10-24 - 2013-10-24
2012-10-25 - 2013-10-25
2012-10-26 - 2013-10-26
2012-10-27 - 2013-10-27
2012-10-28 - 2013-10-27
2012-10-29 - 2013-10-29
2012-10-30 - 2013-10-30
2012-10-31 - 2013-10-31
2012-11-1 - 2013-11-1
2012-11-2 - 2013-11-2
2012-11-3 - 2013-11-3
2012-11-4 - 2013-11-4
2012-11-5 - 2013-11-5
2012-11-6 - 2013-11-6
2012-11-7 - 2013-11-7
2012-11-8 - 2013-11-8
2012-11-9 - 2013-11-9
2012-11-10 - 2013-11-10
2012-11-11 - 2013-11-11
2012-11-12 - 2013-11-12
2012-11-13 - 2013-11-13
2012-11-14 - 2013-11-14
2012-11-15 - 2013-11-15
2012-11-16 - 2013-11-16
2012-11-17 - 2013-11-17
2012-11-18 - 2013-11-18
2012-11-19 - 2013-11-19
2012-11-20 - 2013-11-20
2012-11-21 - 2013-11-21
2012-11-22 - 2013-11-22
2012-11-23 - 2013-11-23
2012-11-24 - 2013-11-24
2012-11-25 - 2013-11-25
2012-11-26 - 2013-11-26
2012-11-27 - 2013-11-27
2012-11-28 - 2013-11-28
2012-11-29 - 2013-11-29
2012-11-30 - 2013-11-30
2012-12-1 - 2013-12-1
2012-12-2 - 2013-12-2
2012-12-3 - 2013-12-3
2012-12-4 - 2013-12-4
2012-12-5 - 2013-12-5
2012-12-6 - 2013-12-6
2012-12-7 - 2013-12-7
2012-12-8 - 2013-12-8
2012-12-9 - 2013-12-9
2012-12-10 - 2013-12-10
2012-12-11 - 2013-12-11
2012-12-12 - 2013-12-12
2012-12-13 - 2013-12-13
2012-12-14 - 2013-12-14
2012-12-15 - 2013-12-15
2012-12-16 - 2013-12-16
2012-12-17 - 2013-12-17
2012-12-18 - 2013-12-18
2012-12-19 - 2013-12-19
2012-12-20 - 2013-12-20
2012-12-21 - 2013-12-21
2012-12-22 - 2013-12-22
2012-12-23 - 2013-12-23
2012-12-24 - 2013-12-24
2012-12-25 - 2013-12-25
2012-12-26 - 2013-12-26
2012-12-27 - 2013-12-27
2012-12-28 - 2013-12-28
2012-12-29 - 2013-12-29
http://www.timeanddate.com/time/dst/2012a.html
Wat is het resultaat van date_default_timezone_get()?
Berekeningen met datum & tijd zijn moeilijk vanwege dingen zoals zomertijd, schrikkeldag, schrikkelseconden en vast nog andere dingen waar ik niet van op de hoogte ben.
Ik vermoed zomaar dat het iets met zomertijd te maken heeft: Wat is het resultaat van date_default_timezone_get()?
Berekeningen met datum & tijd zijn moeilijk vanwege dingen zoals zomertijd, schrikkeldag, schrikkelseconden en vast nog andere dingen waar ik niet van op de hoogte ben.
Gewijzigd op 19/11/2013 10:46:19 door Dos Moonen
$this->startdatum->addHour(6);
for($i = 1;$i <365;$i ++){
$this->_einddatum = clone $this->startdatum;
$this->_einddatum->addYear(1);
echo($this->startdatum->toString("yyyy-MM-d HH-mm").' - '.$this->_einddatum->toString("yyyy-MM-d HH-mm").' <br/>' );
$this->startdatum->addDay(1);
}
geeft het volgende resultaat: (alleen rond 26 maart getoond en 27 oktober.)
Wintertijd probleem???
2012-03-23 06-00 - 2013-03-23 06-00
2012-03-24 06-00 - 2013-03-24 06-00
2012-03-25 06-00 - 2013-03-25 05-00
2012-03-26 06-00 - 2013-03-26 05-00
2012-03-27 06-00 - 2013-03-27 05-00
2012-03-28 06-00 - 2013-03-28 05-00
2012-03-29 06-00 - 2013-03-29 05-00
2012-03-30 06-00 - 2013-03-30 05-00
2012-03-31 06-00 - 2013-03-31 06-00
2012-04-1 06-00 - 2013-04-1 06-00
2012-04-2 06-00 - 2013-04-2 06-00
2012-04-3 06-00 - 2013-04-3 06-00
2012-04-4 06-00 - 2013-04-4 06-00
...
2012-10-25 06-00 - 2013-10-25 06-00
2012-10-26 06-00 - 2013-10-26 06-00
2012-10-27 06-00 - 2013-10-27 05-00
2012-10-28 06-00 - 2013-10-28 06-00
2012-10-29 06-00 - 2013-10-29 06-00
Toevoeging op 19/11/2013 10:36:14:
Is denk ik inderdaad een zomertijd probleem, maar waarom 6 dagen?
Gewijzigd op 19/11/2013 10:37:00 door Gert Assen
Dos Moonen op 19/11/2013 10:30:47:
dingen zoals zomertijd, schrikkeldag, schrikkelseconden en was nog andere dingen waar ik niet van op de hoogte ben.
In het jaar 8228 zal er een 30 februari zijn :)
------
Mijn code heeft dat probleem niet
Code (php)
Gewijzigd op 19/11/2013 11:08:32 door Kris Peeters
Blijkbaar is dat dus inderdaad waar het misgaat. Blijkbaar berekent Zend het verschil in dagen op basis van de verstreken uren en dan krijg je dit soort rare dingen. Zoals eerder al gemeld, datum berekeningen zijn complexe zaken met veel valkuilen.
zie vorige post
Blijft toch raar....