From a8ec4f581af20f044e1e8cb9efe4129a508f5c24 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 --- Koha/Calendar.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Koha/Calendar.pm b/Koha/Calendar.pm index f6cb58c..72f619e 100644 --- a/Koha/Calendar.pm +++ b/Koha/Calendar.pm @@ -311,7 +311,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('UTC'); $dt <= $end_dt; $dt->add(days => 1) ) { @@ -335,7 +335,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('UTC'); $dt <= $end_dt; $dt->add(days => 1) ) { -- 2.1.4