From c398cfa37781dd71f0a6eedba0a466f4d6edbee9 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Tue, 14 Mar 2017 12:46:28 -0400 Subject: [PATCH] Bug 9031: Overdue items crossing DST boundary throw invalid local time exception To test: 1 - Set TZ to America/New York 2 - Checkout item and set due date to '2016-03-09 02:29:00" 3 - Make sure fines are set for the item type, fine mode production, calculate fines on return 4 - Check in item - invalid date time warning in logs 5 - Apply patch 6 - Check in item - no error 7 - prove t/Calendar.t Signed-off-by: Katrin Fischer Bug 9031: Use floating instead of UTC Signed-off-by: Marcel de Rooy Squashed the changes for Calendar.pm; will add a follow-up to finally overcoming the crash on Invalid local time. Signed-off-by: Nick Clemens Signed-off-by: Jonathan Druart --- Koha/Calendar.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Koha/Calendar.pm b/Koha/Calendar.pm index 67d2a6b568..f6a276f21c 100644 --- a/Koha/Calendar.pm +++ b/Koha/Calendar.pm @@ -327,7 +327,7 @@ sub days_between { # start and end should not be closed days my $days = $start_dt->delta_days($end_dt)->delta_days; - for (my $dt = $start_dt->clone(); + for (my $dt = $start_dt->clone()->set_time_zone('floating'); $dt <= $end_dt; $dt->add(days => 1) ) { @@ -351,7 +351,7 @@ sub hours_between { # take into account open/close times then it would be a duration # of library open hours my $skipped_days = 0; - for (my $dt = $start_dt->clone(); + for (my $dt = $start_dt->clone()->set_time_zone('floating'); $dt <= $end_dt; $dt->add(days => 1) ) { -- 2.39.5