When the due date and the backdate date are on opposite sides of a DST
boundary we were getting an hour off on the checkin time (using the
original due date's time).
This commit changes it so that instead we just set the hour and minute
values on the backdate date to the due date's versions, leaving the time
zone alone.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
my $bd = cleanse_ISO8601($self->backdate);
my $original_date = DateTime::Format::ISO8601->new->parse_datetime(cleanse_ISO8601($self->circ->due_date));
my $new_date = DateTime::Format::ISO8601->new->parse_datetime($bd);
- $bd = cleanse_ISO8601($new_date->ymd . 'T' . $original_date->strftime('%T%z'));
+ $new_date->set_hour($original_date->hour());
+ $new_date->set_minute($original_date->minute());
+ $bd = cleanse_ISO8601($new_date->datetime());
$self->backdate($bd);
return undef;