https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=19176 Julian Maurice <julian.maurice@biblibre.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Signed Off |Failed QA --- Comment #20 from Julian Maurice <julian.maurice@biblibre.com> --- There's still something wrong with timezones. Try this: $dt_1 = DateTime->new(year => 2001, month => 1, day => 1, hour => 0, minute => 0, second => 0, time_zone => '+0100'); $dt_3 = DateTime->new(year => 2001, month => 1, day => 1, hour => 1, minute => 0, second => 0, time_zone => '+0200'); is( DateTime->compare($dt_1, $dt_3), 0 ); is( t::lib::Dates::compare( $dt_1, $dt_3 ), 0 ); $dt_1 and $dt_3 are the exact same time, but with a different timezone. DateTime->compare returns 0, but t::lib::Dates::Compare returns -1, because it sets timezone of both date to 'floating' before comparing them, which is wrong not only because it produces a false result, but also because comparing DateTime objects shouldn't modify them. Also a note on this line: $dt_3 = $dt_1->clone->set_time_zone('+0400'); It doesn't do what you think. After that line, $dt_3 is still equal to $dt_1 (with a different timezone) because set_time_zone also adjusts the local time (see http://search.cpan.org/~drolsky/DateTime-1.44/lib/DateTime.pm#$dt-%3Eset_tim...) -- You are receiving this mail because: You are watching all bug changes.