[Koha-bugs] [Bug 23079] Checkouts page broken because of problems with date calculation (TZAmerica/Sao_Paulo)

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Sun Jun 23 03:50:04 CEST 2019


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=23079

--- Comment #6 from Jonathan Druart <jonathan.druart at bugs.koha-community.org> ---
Created attachment 90940
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=90940&action=edit
Bug 23079: Handle invalid timezones when adding/subtracting durations

On Nov 3rd 2019, Brazil will skip from 00:00 to 1:00
(http://www.currenttimeonline.com/dst/dst.do?tz=America/Sao_Paulo), DateTime
consider it as an invalid date.
It is a problem when we are playing with dates without the time part (always
00:00).
When we instantiate a DateTime (from dt_from_string) we are already handling
this issue, and use the floating timezone (since bug 12669).

The problem remains when we generate a DateTime then add or subtract a
duration, which will result in an invalid date:

DateTime->new(year => 2019, month => 12, day => 3, time_zone =>
'America/Sao_Paulo')->subtract(days => 30);

=> Nov 3rd 2019, kaboom.

We should replace all the problematic occurrences of dt_from_string->subtract
(or ->add)
with dt_from_string(undef, undef, 'floating'), to use the floating timezone and
avoid the error.

Actually there are not many of them, I have found only 3 that could
produce real problems.

The other occurrences are:
- in tests => Not a big deal (for now)
- called on a datetime, so it will explode if called at midnight
00:00:00 (and nobody should work at that time).

Test plan:
0/ Define the timezone to 'America/Sao_Paulo' (in your koha-conf.xml file),
restart_all
1/ Set a patron's expiry date to Dec 3rd 2019, and
NotifyBorrowerDeparture to 30 (default value)
2/ See the checkouts page for this user
=> Without this patch you get "Invalid local time for date in time zone:
America/Sao_Paulo"
=> With this patch apply the page displays correctly

QA will review the 2 other occurrences.

-- 
You are receiving this mail because:
You are watching all bug changes.
You are the assignee for the bug.


More information about the Koha-bugs mailing list