<?php
date_default_timezone_set('Europe/Berlin');
$d1 = new DateTime('2010-01-01 06:00:00');
$d2 = new DateTime('2010-01-31 10:00:00');
$d = $d1->diff($d2);
print_r($d);
?>
DateInterval Object
(
[y] => 0
[m] => 1
[d] => 2
[h] => 4
[i] => 0
[s] => 0
[invert] => 0
[days] => 30
)
Wieso kommt hier 1 Monat und 2 Tage raus?
Geht man auf den 30.01. runter, ist es auch noch falsch (1 und 1)
Geht man auf den 29.01. runter, stimmt es (0 und 28)
Lᅵsst man die Uhrzeit weg, stimmt es auch. Dafᅵr stimmen dann andere
Paare nicht (z.B. 2010-01-01, 2010-07-01 -> 5 und 30)
Peter
> <?php
> date_default_timezone_set('Europe/Berlin');
> $d1 = new DateTime('2010-01-01 06:00:00');
> $d2 = new DateTime('2010-01-31 10:00:00');
> $d = $d1->diff($d2);
> print_r($d);
> Wieso kommt hier 1 Monat und 2 Tage raus?
Versuchs doch mal mit einem Bug-Report auf http://bugs.php.net . Bei mir
unter WinXP SP3, PHP 5.3.1 jedenfalls das gleiche Ergebnis.
Grᅵᅵe
Johannes
--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelᅵscht.
Ist wohl schon seit 5.3.0 bekannt und in Arbeit.
http://bugs.php.net/bug.php?id=49081
Peter